设计模式
-
开闭原则:对扩展开放,对修改关闭,多使用抽象类和接口。
-
里氏替换原则:基类可以被子类替换,使用抽象类继承,不使用具体类继承。
-
依赖倒转原则:要依赖于抽象,不要依赖于具体,针对接口编程,不针对实现编程。
-
接口隔离原则:使用多个隔离的接口,比使用单个接口好,建立最小的接口。
-
迪米特法则:一个软件实体应当尽可能少地与其他实体发生相互作用,通过中间类建立联系。
-
合成复用原则:尽量使用合成/聚合,而不是使用继承。
- 工厂模式:将类的实例化操作延迟到子类中完成,即由子类来决定究竟应该实例化(创建)哪一个类
- 抽象工厂模式(引入了网上图片):提供了一个创建一系列相关或相互依赖对象的接口,而无须指定它们具体的类
-
适配器模式: 将一个接口转换成客户希望的另一个接口,适配器模式使接口不兼容的那些类可以一起工作,其别名为包装器(Wrapper)。适配器模式既可以作为类结构型模式,也可以作为对象结构型模式。
-
过滤器模式: 允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把它们连接起来。这种类型的设计模式属于结构型模式,它结合多个标准来获得单一标准。
-
责任链模式: 避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求, 直到有对象处理它为止
-
命令模式:
-
中介者模式: 用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。
-
空对象模式:在空对象模式(Null Object Pattern)中,一个空对象取代 NULL 对象实例的检查。Null 对象不是检查空值,而是反应一个不做任何动作的关系。这样的 Null 对象也可以在数据不可用的时候提供默认的行为。
-
策略模式: 在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。
-
模板模式: 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
- MVC模式
- 业务代表模式
- 组合实体模式
- 数据访问对象模式
- 前端控制器模式
- 拦截过滤器模式
- 服务定位器模式
- 传输对象模式