设计模式总结(创建型)

创建型模式抽象类实例化的过程。帮助一个系统独立于如何创建、组合和表示它的那些对象。创建型模式都会将关于该系统使用哪些具体类的信息封装起来。

允许用结构和功能差别很大的‘产品’对象配置一个系统。配置可以是静态的,即在编译时指定,也可以是动态的,就是运行时在指定。

创建型模式隐藏了类的实例是如何被创建和放在一起的,整个系统关于这些对象所知道的是由抽象类所定义的接口。这样就有了很大的灵活性。

 单例模式:保证一个类仅有一个实例,并提供一个访问它的全局访问点,避免创建多个实例的可能。

优点:让类自身负责保存它的唯一实例,这个类保证没有其他实例可以创建,并且还提供了一个访问该实例的方法。,这样就可以严格地控制客户访问它。

 

 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类。

优点:工厂方法要定义一个用于创建对象的接口,让子类决定实例化哪一个类。克服了简单工厂违背开放-封闭原则的缺点,有保持了封装对象创建过程的优点。运用工厂方法模式可以很好的让父类与子类解耦。

不足:由于工厂类集中了所有产品创建的逻辑,如果不能正常工作的话会对系统造成很大的影响。如果增加新产品必须修改工厂角色的源码。

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

在抽象工厂模式中

1.改变一个应用的具体工厂变得非常容易,他只需要改变具体工厂即可使用不同的产品配置(开放封闭原则)

2.它让具体的创建实例过程与客户端分离,客户端是通过他们的抽象接口操纵实例,产品的具体类名也被具体工厂的实现分离,不会出现在客户端中

但是如果要增加类的话他需要修改三各类,是非常麻烦的,所以我们要用简单工厂改进抽象工厂

反射:反射的时候我们将字符串写成变量,可以通过变量去决定是哪个数据库,所以就去除了switch判断的麻烦,如果要增加数据库需要本着开放—封闭原则、依赖倒转、里氏转换

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

其中分为浅复制和深复制。

浅复制:

 克隆的对象对引用进行赋值,都是对同一个引用对象进行赋值,所以显示出来的结果也是一样的。

深复制:

深复制是将复制对象进行传值,也就是真正意义上的复制。

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

构建一个子类,将父类所有的虚方法重写实现继承

在创建一个指挥者来控制建造的过程,隔离用户与建造过程的联系

类图中的聚合:不同的小人方法聚集到指挥者

 

 

评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值