创建型模式:建造者模式,工厂模式,单例模式
代码大量复用
结构型模式:适配器模式,桥接模式,组合模式,装饰模式,外观模式,代理模式
帮助我们创建和使用复杂的结构
行为型模式:命令模式,迭代器模式,观察者模式,状态模式,策略模式
描述了对象在系统中的通信方式以及程序的逻辑控制流
1. 单例模式
用来限制应用程序,使其只能创建某一特定类类型的一个单一的实例。
比如,一个web站点只允许一个数据库连接对象,只允许一个配置文件类。
主要使用静态属性和静态方法来实现。
2. 工厂模式
当编写程序的时候,并不能确定在生成对象的时候其确切的对象类型,只有到程序运行的时候才会确定。在动态的应用程序中,这种情况非常常见。
比如,编写一个计算器程序。
创建一个工厂类,定义静态方法,可传入需要得到的类型和参数。
3. 组合模式
组合模式适用于当我们的一个对象可能代表一个单一的实体,或者一个组合的实体,但是仍然需要通过同样的方式被使用的情形。
父类定义成抽象类,里面定义多种抽象方法,子类继承父类,以各种方式选择性的实现抽象方法,这样就达到了自由组合的目的。
Tips:访问者模式允许跨结构的操作,它往往会结合组合模式一起使用。
4. 策略模式
工厂模式会立即改对象的类型,但是策略模式会立即改变一个算法(算法是用来执行某个计算或者解决某个问题的一个过程或者代码)。当我们使用的类比较简单,但是又互相不关联,只是在特定行为上有所差异的场景下,策略模式就会十分有用。
举例来说:一个过滤系统,会有不同的过滤策略。
首先创造过滤器的基类,
然后分别定义不同的过滤器,
最后创建一个类来使用过滤器,
使用的时候,把不同的过滤器的实例作为参数传递给使用过滤器的那个类。