您的位置:首页 > 移动开发 > Objective-C

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

2012-08-10 09:26 330 查看
原型模式提供了确定对象种类的接口,客户端通过拷贝原型来创建重复的对象。

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);
}


个人认为,原型模式还蛮有用的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息