上篇《简单学设计模式》
关于创建型模式,上面是一个基本的类图。
无论创建者(Create),是使用什么模式,大体的模式应该都和上面的差不多。
1.单例,保证创建者只创建一个,控制数量
2.工厂模式,根据不同的创建者,创建不同的对象
3.抽象工厂,根据不同的创建者,创建一组对象
4.创建者模式,根据不同的创建者,加工出不同对象行为。
5.原型模式,以拷贝的方式创建对象。
创建这模式的关键,一个创建函数,创建函数的关键是函数的返回值不同,返回值的多态是创建行模式的共同特点。
有些人可以回有如下疑问。
单例模式的返回值是没有多态的。
原型模式的返回值也是没有多态的。
创建者模式的返回值实际上也不是多态的。
我做如下解析
单例模式的返回值是没有多态的。
原型模式的返回值也是没有多态的。
我这里为了统一说明一下上面两种模式确实和多态不相关,这里说一下就是方便记忆。
创建者模式的返回值实际上也不是多态的。
创建者模式,多态是通过创建者的多态来实现的,用创建者的多态改变对象的行为。
上面的图本质上是一个工厂模式的类图。(工厂模式是创建行模式最朴素的模式,其他模式都是由这个模式演化而来的)
1.下面贴一个抽象工厂模式的类图
2.下面贴一向创建者模式演化的类图