文章字数:630,阅读全文大约需要2分钟
工厂模式Factory Pattern
- 意图:定义一个创建对象的接口,让子类界定实例化那个工厂类。创建过程在子类执行。
- 解决问题:接口的子类实现各不相同,但是需要同一个实例化入口
抽象工厂Abstract Factory Pattern
- 意图:将同类产品的工厂类组合起来,形成一个抽象工厂接口。
- 使用步骤:1.通过抽象工厂的实现类获取工厂类(同类工厂在一起) 2.通过工厂类获取对象实体
单例模式Singleton Pattern
- 意图:保证类只有一个实例,并且提供全局访问点
- 实现:判断是否存在实例,存在返回。不存在创建,并用静态变量保存。私有化构造函数,使只有一个入口用于生产实例
建造者模式Builder Pattern
- 意图:将由多个步骤/节点,组成。每个步骤/节点的内容一样,但是需要不同顺序,数量等组合生成新产品。
- 实现:1.拥有不同细节实现类 2.按规则生成并保存细节(List)3.将细节拼接成为一个新的对象
- 例子:StringBuilder
原型模式Prototype Pattern
- 意图:作为创建模式,和工厂模式不同的是该模式的思想是创建一个对象的原型,原型对象可以复制、克隆为新的对象
- 实现:原型模式有两种实现
浅复制
:使用Cloneable.clone()
,原型继承Cloneable
,然后调用super.clone()
进行类型转换。浅复制基本数据类型的变量会创建,其它的对象引用指向原型对象。深复制
:基本类型和引用类型都重新创建
原型implements Cloneable, Serializable
克隆方法
1 | public Object deepClone() throws IOException, ClassNotFoundException { |