单一职责原则:
里氏代换原则:一个软件实体如果使用的是一个父类的话,那么一定适用于其子类,而且它察觉不出父类对象和子类对象的区别。也就是说,在软件里面,把父类都替换成它的子类,程序的行为没有变化。(子类型必须能够替换掉他们的父类型)
面向对象的优点:易维护,易拓展,易复用,高度灵活
开放——封闭原则(OCP):
依赖倒转原则:A)高层模块不应该依赖底层模块。两个都应该依赖抽象。B)抽象不应该依赖细节。细节应该依赖抽象。(基于接口进行设计)
模板方法模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义某些算法的步骤。
迪米特法则(Lod):也叫最少知识原则,如果两个类不必彼此通信,那么这两个类就不应该发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。
外观模式(Facade):为子系统的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。