3, 工厂方法模式 (Factory Method)
FACTORY METHOD—请 MM 去麦当劳吃汉堡,不同的 MM 有不同的口味,要每个都记住是一件烦
人的事情,我一般采用 Factory Method 模式,带着 MM 到服务员那儿,说“要一个汉堡”,具体要
什么样的汉堡呢,让 MM 直接跟服务员说就行了。
工厂方法模式:核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成
为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实
例化这种细节。
将程序中创建对象的操作,单独出来处理,创建一个产品的工厂接口,把实际的工作转移到具体
的子类。大大提高了系统扩展的柔性,接口的抽象化处理给相互依赖的对象创建提供了最好的抽
象模式。
4, 原型模式 (ProtoType)
PROTOTYPE—跟 MM 用 QQ 聊天,一定要说些深情的话语了,我搜集了好多肉麻的情话,需要时
只要 copy 出来放到 QQ 里面就行了,这就是我的情话 prototype 了。(100 块钱一份,你要不要)
原始模型模式:通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象
的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减少产品类,产品类不需要非
得有任何事先确定的等级结构,原始模型模式适用于任何的等级结构。缺点是每一个类都必须配
备一个克隆方法。
通过一个原型对象来创建一个新对象(克隆)。Java 中要给出 Clonable 接口的实现,具体类要实
现这个接口,并给出 clone()方法的实现细节,这就是简单原型模式的应用。 浅拷贝:只拷贝简
单属性的值和对象属性的地址 深拷贝:拷贝本对象引用的对象,有可能会出现循环引用的情况。
可以用串行化解决深拷贝。写到流里再读出来,这时会是一个对象的深拷贝结果。
5, 单例模式 (Singleton)
SINGLETON—俺有 6 个漂亮的老婆,她们的老公都是我,我就是我们家里的老公 Singleton,她们只
要说道“老公”,都是指的同一个人,那就是我(刚才做了个梦啦,哪有这么好的事)