1.原型模式的概念
理解:原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。被复制的实例就是我们所称的“原型”,这个原型是可定制的。
应用:原型模式多用于创建复杂的或者耗时的实例,因为这种情况下,复制一个已经存在的实例使程序运行更高效;或者创建值相等,只是命名不一样的同类数据。
角色:
客户(Client)角色:客户端类向原型管理器提出创建对象的请求。
抽象原型(Prototype)角色:这是一个抽象角色,通常由一个java接口或抽象类实现。此角色给出所有的具体原型类所需的接口。
具体原型(Concrete Prototype)角色:被复制的对象。此角色必须实现抽象的原型角色所要求的接口。
2.UML图
3.通用代码
抽象原型:
public interface Prototype extends Cloneable{
//克隆方法
Prototype clone();
//更多具体逻辑
//......
}
具体原型:
public class ConcretePrototype implements Prototype{
public Prototype clone(){
try {
return (Prototype)super.clone();
} catch (CloneNotSupportedException e) {
e.printStackTrace();
return null;
}
}
}
客户:
public class Client {
public void operation(Prototype example){
//需要创建原型接口的对象
Prototype copyPrototype = example.clone();
}
}
4.小结
写完这篇,已经把创建模式写完了,回顾一下吧。
单例模式:保证一个类只有一个实例,并且提供一个访问该实例的全局访问点。
简单工厂模式:工厂模式是我们最常用的实例化对象模式了,是用工厂方法代替new操作的一种模式;
工厂方法模式:一个用于创建对象的接口,让子类决定实例化了哪个类。工厂方法使一个类的实例化延迟到其子类。 用于生产同一等级结构中的固定产品。(支持增加任意产品)
抽像工厂模式:为创建一组相关或相互依赖的对象提供一个借口,无需指定它们的具体类。、
建造者模式:将一个复杂的对象构建与其表示相分离,使得同样的构建过程可以创建不同的表示;
原型模式:原型模式是创建型模式的一种,其特点在于通过“复制”一个已经存在的实例来返回新的实例,而不是新建实例。
希望自己能坚持继续总结下去,给自己点鸡血。
一个人要像一支队伍,对着自己的头脑和心灵招兵买马,不气馁,有召唤,爱自由。
你之所以成为你,是因为你有你的司令员和政委、你的后勤部长,你是你自己的小兵,又是你自己的统帅。你要知道自己这支军队向何处去。在这支军队沮丧的时候给它打气。在军队迷路时做它永不失灵的GPS。在它忘乎所以的时候给它兜头一盆冷水。在这支军队重伤的时候,你要给它输血、包扎,给它以休养生息的机会,你要让它安然和健康。
你要知道什么对它是真正的好,并要不懈地坚持。
岁月不饶人,你,也不要轻易饶过岁月。