类设计原则
- 开闭原则:在扩展方面开放,在修改方面封闭。多用接口、抽象类、多态等技术来设计。
实现方法:把不变的部分抽象成接口;
接口要注意最小功能实现;
模块之间的调用要通过接口进行,这样即使实现层发生变化,也无需修改调用层的代码;
- 替换原则:子类可以替换父类,并出现在父类出现的任何地方。
- 依赖原则:依赖关系尽量依赖接口和抽象类。具体类只负责业务实现,修改具体类不会影响整个业务的依赖关系。
高层模块不应该依赖于低层模块,二者都应该依赖于抽象。
抽象不应该依赖于细节,细节应该依赖于抽象
- 接口分离原则:使用多个专门的接口要比使用单一接口涵盖多个功能好。
- 单一职责:类在。一个操作类只完成一种职责。
设计时如何划分职责:可分为实体类,操作类,边界类;
一种职责:引起该类发生变化的一个原因;
操作类:控制类有效将业务逻辑独立于实体数据和边界控制,专注于处理业务逻辑,控制类会将特有的操作和实体类分离,者有利于实体类的统一化和提高复用性。
操作类要面向接口。
如何分解操作类:
类的关系:
关联:一个类知道另一个类的属性和方法;使用成员变量来实现;
聚合:表示整体与部分之间的关系,也是通过成员变量来实现,只是关联的两个类是同一层次的,聚合的两个类是不同层次的,一个代表整体一个代表部分;部分可以离开整体而独立存在。
合成:比聚合的关系还要强,它要求聚合关系中代表整体的对象负责代表部分对象的生命周期。整体要负责部分存活状态的创建和销毁。
依赖:局部变量,方法的参数,静态方法的调用。