设计模式学习笔记之原型模式

来源:互联网 发布:淘宝店铺装修宝贝推荐 编辑:程序博客网 时间:2024/04/30 19:46

原型模式提供了确定对象种类的接口,客户端通过拷贝原型来创建重复的对象。

Java中原型模式的实现,即是使用clone方法。

例如我们有一个Cat类:

package com.DesignPolicyLearn.Prototype;/* * author:Tammy Pi * function:猫类 */public class Cat {private String name;public Cat(String name){this.name = name;}public String getName() {return name;}public void setName(String name) {this.name = name;}public void display() {System.out.println("My name is "+name);}public Object clone(){return this;}}


用于测试的类:

package com.DesignPolicyLearn.Prototype;/* * author:Tammy Pi * function:测试类 */public class Main {public static void main(String[] args){Cat cat1 = new Cat("JiaFei");cat1.display();Cat cat2 = (Cat) cat1.clone();cat2.display();}}

这样我们就方便的创建多个重复的对象,而不需要new。不过需要注意的是,现在cat1和cat2的引用是一样的,也就是改了cat2里的值name,cat1的值name也就变化了。

如果不希望这样,希望他们是值相同引用不相同的两个对象,那么clone中应该这样写:

public Object clone(){return new Cat(name);}


个人认为,原型模式还蛮有用的。