概述
在 设计模式使用场景 一文中已经可以知道设计模式的使用场景了,那么和设计模式离不开的设计原则呢?在文本将主要描述六大设计原则的实现。
1.“开-闭”原则(OCP)
OPEN CLOSE PRINCIPLE:一个软件实体(类和功能方法)应当不修改现有代码的基础上,引入新功能。
- 多使用抽象类和接口
对于具有相似行为的类进行抽象化处理,将公共的部分放到抽象父类中,当需要扩展的时候,只需要实现一个具体的子类即可。
对于没有公共的部分,可以设定一个处理接口,当需要扩展的时候,只需要子类实现该接口来实现不同的行为。
- 封装变化部分
尽可能地将会发生变化的内容独立出来,单独封装,而将这一部分作为抽象为其它部分调用。这样一旦有变化的需求,只需要修改或者更新封装的部分即可适应整体的变化,大大减少了变化的内容。
2.单一职责原则(SRP)
Single Responsibility Principle:不要让类实现过多的功能点,最好一个类一个功能点,以确保一个实现类只有一个引起它变化的原因。
3.依赖倒换原则(DIP)
Dependence Inversion Principle:在类的实例变量声明中应该尽量使用接口作为对象实例变量类型,这样就将类和具体实现之间解耦了
4.接口隔离原则(ISP)
Interface Segregation Principle:如果把接口比作角色,那么不同的角色分别代表不同的接口,且接口中的方法都只能属于这个角色的
5.里氏替换原则(LSP)
Liskov Substitution Principle:使用抽象类或接口作为方法的参数类型,然后将具体的子类型作为实际运行的参数传入,实现具体的行为处理
6.迪米特法则(LOD)
Low Of Demeter:尽量不要让类和类之间建立直接的关系,如果需要建立关系,最好通过其友元类来中转建立关系。但也带来的缺点就是可能存在大量的中介者类充当中转的角色,造成类的膨胀以及系统处理的复杂度。所以,在实际中还是要权衡使用LOD法则
参考资料
- 一本好书《软件秘笈 设计模式那点事》