下面先介绍10个重要的设计模式,通过图解+代码的形式进行展示,方便理解。
设计模式
创建型设计模式是解决对象创建机制的设计模式。该类设计模式试图根据具体情况,以适当方式创建对象。
- 工厂方法模式
工厂方法的功能:通过传入参数选择一个类,创建该类的对象,以超类的类型返回该对象。
- 简单工厂方式模式
下面给出一个简单工厂方法实现的例子:
- 工厂方法模式
下面给出一个工厂方法模式实现的例子:
简单工厂方法模式和工厂方法模式的比较:
中心不同、一个静态一个动态、工厂方法模式的可扩展性(已有源码不需要修改)、返回类型都是超类、工厂方法模式支持开闭原则,简单工厂方法模式不支持。
- 抽象工厂模式
抽象工厂就是创建多层次类的一种设计模式,首先给出架构,然后再给出一个实现例子。
结构型设计模式
结构型设计模式的主要目的是将不同的类和对象组合在一起,形成更大或者更复杂的结构体,例如,形成复杂的用户接口或者复杂的账户数据接口。
然而该模式不是简单地将这些类摆在一起,而是要提供这些类之间的关联方式。
3. 适配器模式
这是第一个结构型的设计模式,分为类适配器模式和对象适配器模式,适配器类是一个继承自原接口的新接口,用户通过新接口实现适配器类,就可以获得原接口的功能。
使用方法如下:
对象适配器模式通过传入原接口的对象的方法实现多接口的功能集成,下面给出一个简单的单对象适配器类。对象数可以无限扩展。
- 桥接模式
看这个结构图可能比较抽象,看一个例子就能明白了。
这种设计模式可以方便在两个维度上的分别扩展,而不影响其他已经写好的类。
行为型设计模式
- 行为模式关心算法和对象之间的责任分配。
- 它关心的不是仅仅描述对象或类的模式,而是要更加侧重描述它们之间的通信模式。
- 行为模式刻画了很难在运行时跟踪的复杂的控制流。该模式将软件开发者的注意力从控制流转移到对象相互关联的方式方面。
- 策略模式
这次比较简单。
- 状态模式
状态模式也比较简单,常常用来实现对多个不同类的调用。
- 访问者模式
重点是accept方法
- 中介者模式
重点是register方法
- 观察者模式