类模型设计其实就是程咬金打天下 -- 三板斧 而已 :)
第一斧(照猫画虎):领域类映射
面向对象类设计首先要解决的一个问题是:类从哪里来 ?
有的人可能会认为,要发挥想象力、创造力。。。。。等各种“力”——这种方法的主要问题是:我们不是在进行纯粹的艺术创造,而是要最终满足客户需求,而不能天马行空。
看起来以上方法都不太可行,那究竟如何才能从哪里找到我们需要的类呢?
相信不用我多说,绝大部分同学一眼就能看出:哇塞,这不就是类么?
【用例名称】 买单 【场景】 Who:顾客、收银员 Where:商店的收银台 When:营业时间 【用例描述】 1. 顾客携带选择好的商品到收银台; (这一步没有异常) 2. 收银员逐一扫描商品条形码,系统根据条形码查询商品信息; 2.1 扫描仪坏了,必须支持手工输入条形码; 2.2 商品的条形码无法扫描,必须支持手工输入条形码; 2.3 条形码能够扫描,但查询不到信息,需要收银员和顾客沟通,放弃购买此产品 3. 扫描完毕,系统显示商品总额,收银员告诉顾客商品总额; (这一步没有异常) 4. 顾客将钱交给收银员; 4.1 顾客的钱不够,顾客和收银员沟通,删除某商品; 4.2 顾客的钱不够,顾客和收银员沟通,删除某类商品中的一个或几个(例如买了5包烟,去掉两包) 4.3 顾客觉得某个商品价格太高,要求删除某商品; 4-A:顾客使用信用卡支付 4-A.1 信用卡支付流程(请读者自行思考完善,可以写在这里,如果太多,也可以另外写一个子用例) 4-B:顾客使用购物卡支付 4-B.1 购物卡支付流程 4-C:顾客使用会员卡积分支付 4-C.1 会员卡积分支付流程 5. 收银员清点钱数,输入收到的款额,系统给出找零的数目; (这一步没有异常) 6. 收银员将找零的钱还给顾客,并打印小票; 7. 买单完成,顾客携带商品和小票离开; 【用例价值】 顾客买完单以后,就可以携带商品离开,而超市也将得到收入; 【约束和限制】 1. POS机必须符合国标XXX; 2. 键盘使用中文,因为收银员都是中国人; 3. 一次买单数额不能超过99999RMB; 4. POS机要非常稳定,至少一天内不要出现故障; |
首字母 | 英文简写 | 英文名称 | 中文名称 | 说明 |
S | SRP | Single Responsibility Principle | 单一职责原则 | 对象应该只具备单一职责 |
O | OCP | Open/Close Principle | 开放/封闭原则 | 认为“软件体应该是对于扩展开放的,但是对于修改封闭的”的概念。 |
L | LSP | Liskov Substitution Principle | Liskov替换原则 | 认为“程序中的对象应该是可以在不改变程序正确性的前提下被它的子类所替换的”的概念 |
I | ISP | Interface Segregation Principle | 多个特定客户端接口要好于一个宽泛用途的接口 | |
D | DIP | Dependency Inversion Principle | 依赖于抽象而不是一个实例 |
连载:面向对象葵花宝典:思想、技巧与实践(26) - 类模型三板斧,布布扣,bubuko.com
连载:面向对象葵花宝典:思想、技巧与实践(26) - 类模型三板斧
原文:http://blog.csdn.net/yunhua_lee/article/details/23738671