设计模式总结—创建型

来源:互联网 发布:淘宝主图 2017 编辑:程序博客网 时间:2024/05/01 23:26

什么是设计模式,模就是模板的意思,式就是方式,设计模式就相当于一种解决方案,每一种设计模式是特定问题的一种解决方案。二十三种设计模式分为三大类(创建型、结构型、行为型)。


先来理解一下五个创建型模式,理解的不对的希望大家多多指导

1.工厂方法模式:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。

何时用:明确地计划不同条件下创建不同实例时,用户知道自己要实例化那个类,这时可以使用工厂方法模式。

例如:我去超市,我知道这家超市有卖苹果、梨、香蕉、橘子,这时我要买苹果我就可以用工厂方法模式,让老板去给我找到苹果并称重好。

2.抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

何时用:一个万能的可以生产一个产品的成套系列。

例如:一个大的工厂分着两个小工厂A和B,A工厂是生产各类手机的手机套,B工厂生产各类手机,当需要OPPO R11的手机壳和手机套时,直接实例出大工厂后两个小工厂就会做出OPPO R11的手机壳和手机套。当要换成小米6的时候时只需要对大工厂重新命令就可以换成小米6的手机和与之匹配的手机套。

3.建造者模式:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

何时用:当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时。

例如:我们去吃披萨,点餐的时候我们会告诉老板来一份披萨,而不是告诉老板我的披萨要先加热五分钟再加一勺盐再加一点肉,最后我们只看到了好吃的披萨和制作披萨的过程分开。

4.单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点。 

何时用:比如去动物园玩,每天有限制几点到几点开门控制游客进出。这是怎么做到的呢,只让动物园有一个门口不论谁出入都得经过这个门。就像这个类一样只实例化一个类,如果想要访问只有这个类只有通过唯一的这个类的实例化的对象,控制了所有的访问限制。

5.原型模式:原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。

何时用:想要得到一个一样的东西时会用到原型模式,想到家乡每逢中秋节会有月饼,做月饼的时候有个模子,用这个模子做出来的月饼都是一个模样,就像潜复制一样,如果每个月饼里面的陷也都一样的话就跟深复制一样了。


原创粉丝点击