2009年4月2日星期四

建模,也是一种分类。

写telnet connection的时候用到一些常量。比如login的提示符“login: ”,支持的命令“dir”、“list”。这些刚开始都是写到telnetConnection的类里作为常量。但是,当试图支持Linux和XP两种OS上的telnet server时发现这是错误的。
新的想法是:创建一个Device类,这个类包含IP, Name之类, Device类中再包含一个TelnetServer类。TelnetServer有两个子类分别对应Linux, XP或者其它server软件(比如dslam)。把“login: ”这样的东西放到TelnetServer中是合适的。
而dir, list这样的命令放在OsCommandSet类中也许比较合适。
这样就成了:

Device
|
|------>TelnetServer
|------->OsCommandSet


而 TelnetConnection<---Device

分类就是把数据、方法放到合适的类里。分类正确了,代码逻辑就清楚,同时维护就容易。