软件架构-设计原则
这几天西安一直下雨,转眼把我们带入到了秋天。工作上越来越难取得进步,给内部集团做项目,没有强有力的领导推动,事情进展很慢。只能在学习上找到突破点,否则每天8个小时,越来越迷茫。复习旧知识,温故而知新。
设计模式是在解决问题的过程中,一些良好思路的经验集成,常见的是GoF 23种设计模式。GoF 23种设计模式的一些指导设计原则:
1、“开闭”原则(OCP):一个软件实体应当对扩展开放,对修改关闭。“抽象化”是OCP的关键。
2、里氏代换原则(LSP):在一个软件系统中,子类应该可以替换任何基类能够出现的地方,并且经过替换以后,代码还能正常工作。“继承”是LSP的关键。
3、依赖倒转原则(DIP):要依赖于抽象,不要依赖于具体。或者说是:要针对接口编程,不要对实现编程。“规范抽象”是DIP的关键。
4、接口隔离原则(ISP):使用多个专门的接口比使用单一的总接口要好。也就是说,一个类对另外一个类的依赖性应当是建立在最小的接口上的。“多重继承”是ISP的关键。
5、组合/聚合复用原则(CARP):在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分:新的对象通过向这些对象的委派达到复用已有功能的目的。“组合/聚合”是CARP的关键。
聚合:指的是整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。例如一个航母编队包括海空母舰、驱护舰艇、舰载飞机及核动力攻击潜艇等。
组合:也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。
6、迪米特法则(LoD):又叫作最少知识原则(Least Knowledge Principle 简写LKP),就是说一个对象应当对其他对象有尽可能少的了解,不和陌生人说话。“传递间接的调用”是LoD的关键。