1 软件设计原则
-
开闭原则(OCP)
开闭原则(Open-Closed Principle):一个软件实体应当对扩展开放,对修改关闭。 -
里氏代换原则(LSP)
里氏代换原则(Liskov Substitution Principle):子类型必须能够替换它们的基类型。反过来的代换不成立。 -
依赖倒置原则(DIP)
依赖倒置原则(Dependence Inversion Principle):具体要依赖于抽象,抽象不要依赖于具体。 -
接口隔离原则(ISP)
接口隔离原则(Interface Segregation Principle):使用多个专门的接口比使用单一的总接口总要好。 -
合成/聚合复用原则(CARP)
合成/聚合复用原则(Composite/Aggregate Reuse Principle或CARP):就是在一个新的对象里面使用一些已有的对象,使之成为新对象的一部分;新对象通过向这些对象的委派达到复用已有功能的目的。 -
迪米特法则(LoD)
迪米特法则(Law of Demeter或简写LoD)又叫最少知识原则(Least Knowledge Principle或简写为LKP):一个对象应当对其它对象有尽可能少的了解。不要和陌生人说话。 -
抽象类原则
抽象类不会有实例,一般作为父类为子类继承,一般包含这个系的共同属性和方法。
2 设计模式
创建模式,提供实例化的方法,为适合的状况提供相应的对象创建方法。
- Factory Method(工厂方法)
- Abstract Factory(抽象工厂)
- Builder(建造者)
- Prototype(原型)
- Singleton(单例)
结构化模式,通常用来处理实体之间的关系,使得这些实体能够更好地协同工作。
- Adapter Class/Object(适配器)
- Bridge(桥接)
- Composite(组合)
- Decorator(装饰)
- Facade(外观)
- Flyweight(享元)
- Proxy(代理)
行为模式,用于在不同的实体建进行通信,为实体之间的通信提供更容易,更灵活的通信方法。
- Interpreter(解释器)
- Template Method(模板方法)
- Chain of Responsibility(责任链)
- Command(命令)
- Iterator(迭代器)
- Mediator(中介者)
- Memento(备忘录)
- Observer(观察者)
- State(状态)
- Strategy(策略)
- Visitor(访问者)