- 类模式
- 工厂方法模式
- 对象模式
- 抽象工厂模式
- 建造者模式
- 原型模式
- 单例模式
包含如下角色
将对象的创建和对象本身业务处理分离可以降低系统的耦合度 ,使得两者修改起来都相对容易。
简单工厂模式的要点在于:当你需要什么,只需要传入一个正确的参数,就可以获取你所需要的对象,而无须知道其创建细节。
优点
缺点
适用
简化
可以把静态工厂方法写到抽象产品类中
根据不同的权限等级创建不同的用户对象,不同的用户对象拥有不同的操作权限
JDK日期格式化类
JDK加密技术
考虑简单工厂的不足,即要增加新产品时,除了增加一个新的具体产品类之外,还需要修改工厂类的代码,这就使得整个设计在一定程度上违反了“开闭原则 ”
修改:不再设计一个工厂类来统一负责所有产品的创建,而是将具体类的创建过程交给专门的工厂子类去完成
在工厂方法模式中,核心的工厂类不再负责所有产 品的创建,而是将具体创建工作交给子类去做。因此,工厂方法模式可以允许系统在不修改工厂角色的情况下引进新产品。(符合开闭原则)
在定义工厂和产品时都必须使用抽象层,如果需要更换产品类,只需要更换对应的工厂即可,其他代 码不需要进行任何修改。
优点
缺点
适用
引入两个概念
包含以下角色:
优点
缺点
适用
一个电器工厂可以生产多个类型的电器,有多个工厂
针对不同的数据库,提供Connector和Statement
建造者模式(Bulider模式)详解 (biancheng.net)
包含以下角色
引入指挥者类,一方面它隔离了客户与生产过 程;另一方面它负责控制产品的生成过程。
在客户端代码中,无需关心产品对象的具体组装过程,只需确定具体的建造者类型即可
优点
缺点
适用
简化
建造者模式可以用于描述KFC如何创建套餐:套餐是一个复杂对象,它一般包含主食(如汉堡、鸡肉卷等)和 饮料(如果汁、可乐等)等组成部分,不同的套餐有不同的组成部分,而KFC的服务员可以根据顾客的要求, 一步一步装配这些组成部分,构造一份完整的套餐,然后返回给顾客
通过前面的学习,我们已经了解了建造者模式,那么它和工厂模式有什么区别呢?
原型模式(Prototype Pattern):原型模式是一种对象创建型模式,用原型实例指定创建对象的种类,并且通过复 制这些原型创建新的对象。
原型模式允许一个对象再创建另外一个可定制的对象,无须知道任何创建的细节。
原型模式包含如下角色:
一个类包含一些成员对象,在使用原型模式克隆对象时,根据其成员对象是否也克隆,原型模式可以分为两种形式:深克隆和浅克隆
JAVA中有clone方法
java.lang.Object
,而Object类提供一个 clone()方法,可以将一个Java对象复制一份x.clone()!=x
,即克隆对象与 原对象不是同一个对象。x.clone().getClass()==x.getClass()
,即克隆对象与原 对象的类型一样。 x.clone().equals(x)
应该成立。优点
缺点
适用
扩展
原型管理器原型模式(原型设计模式)详解 (biancheng.net)
相似对象的复制
很多情况下,复制所得到的对象与原型对象并不是完全相同的,它们的某些属性值存在异同。通过原型模式获 得相同对象后可以再对其属性进行修改,从而获取所需对象。
原文:https://www.cnblogs.com/cpaulyz/p/14923697.html