三、类模型-应用设计原则和设计模式
精雕细琢,设计良好的类与类关系
【设计原则】
无论项目开发流程用哪种模式,瀑布、迭代、螺旋、敏捷等。只要是面向对象设计,都应该应用设计原则以提高设计质量
设计SOLID原则:
1.设计原则有什么用?
设计原则就像一把尺子,是衡量类设计的尺子。通过分析来判断设计的类是否符合设计原则的这5个标准,进而调整类的设计,达到设计良好的目的。
2.为什么要用设计原则来衡量类设计的好坏?
因为设计原则是为了保证类的可扩展性的,这也是面向对象设计的核心目的。
POS机的例子:
我们经过分析后,发现交易类直接依赖了“会员卡”、“购物卡”、“信用卡”、“现金”这四个子类,这样不符合DIP原则,如果要增加新的交易方式,那么“交易”类也要跟着修改。所以,我们增加了一个“支付”类作为这四个子类的父类,“交易”类依赖于支付类(多态的形式)。
【设计模式】
设计模式归根到底也是为了保证类的可扩展性的。
设计模式和设计原则相互之间是互补的关系。
设计原则用于指导“类的定义”的设计,设计模式用于指导“类的动作”的设计。也就是说,设计原则是类的静态设计原则,设计模式是类的动态设计原则。
一般采用“先设计原则,后设计模式”的方式来操作。
还是POS机的例子:
通过分析我们发现“信用卡”这个类存在优化空间。“信用卡”有多个品牌,每个品牌的接入方式、协议、认证等都是不同的。为了封装这种差异,我们应用设计模式的Bridge模式,提取出“信用卡处理”类,这个类主要的职责是处理“连接”、“认证”、“扣款”这些职责。所有品牌的信用卡都继承"信用卡处理"类。
【拆分辅助类】
拆分辅助类指的是为了满足一个公司具体的开发框架或规范,进行必要的拆分。
例如MVC模式,那么就需要把一些类按照MVC的规则进行拆分。JAVA的J2EE模式中,将对象分为PO、BO、VO、DTO等对象