创建型模式

前言

  学完了设计模式,我们知道设计模式分为创建型模式,结构型模式和行为型模式,今天我们一起来学习一下5种创建型模式。

内容

 工厂方法模式

  定义了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。

  实例:雷锋依然在人间
  这里写图片描述
  优点:符合开放封闭原则和依赖倒转原则,保持了封装对象创建过程的优点,降低了客户程序和产品对象的耦合;

  缺点:每增加一个产品,就需要增加一个产品工厂的类,增加了额外的开发量;

 抽象工厂模式

  提供一个创建一系列相关或相互依赖的接口,而无需制定他们具体的类。

  实例:更换DB
  这里写图片描述
  优点:改变一个应用的具体工厂十分容易,在客户端就可以更改;让具体的创建实例过程与客户端分离,客户端是通过他们的抽象接口操纵实例,产品的具体类名也被具体工厂的实现分离;

  缺点:假设要增加一个Project,至少要增加三个类,IProject,SQLserverProject,AccessProject,还需要更改IFactory;同时有多个客户端调用,就需要更改多次;

 单例模式

  保证一个类仅有一个实例,并提供一个访问他的全局访问点。

  实例:类的计划生育
  这里写图片描述
  优点:严格控制客户怎样访问以及何时访问;节约了系统资源;单一职责原则;

  缺点:不易扩展;

 建造者(生成器)模式

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

  实例:好菜每回味不同,画小人
  这里写图片描述
  优点:将产品的内部表象与生成过程分割开来,只需指定建造的类型,不需知道建造的过程和细节;

  缺点:如果产品内部变化复杂,会增加系统的难度和运行成本;

  适用场景:创建复杂对象的算法独立于该对象的组成部分以及他们的装配方式;内部建造顺序稳定;

 原型模式

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

  实例:简历复印
  这里写图片描述
  优点:从一个对象创建另外一个可定制的对象,而且不需知道任何创建的细节;提高性能;

  缺点:浅复制和深复制

总结

  这些模式看起来简单,学起来简单,但是真要总结起来就要费一番功夫了啊。创建型模式帮助一个系统独立于如何创建,组合和表示他的那些对象。

评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值