您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Java 原型(Prototype)模式的代码示例

2025/8/14 2:57:29发布17次查看
java 原型(prototype)模式的代码示例
public class basespoon implements cloneable {//spoon 匙, 调羹 string name; public string getname() { return name; } public void setname(string name) { this.name = name; } @override protected basespoon clone() throws clonenotsupportedexception { system.out.println("clone a basespoon"); basespoon object = null; try { object = (basespoon) super.clone(); } catch (clonenotsupportedexception e) { e.printstacktrace(); system.err.println("basespoon is not cloneable"); } return object; } }
public class saladspoon extends basespoon { public saladspoon() { setname("salad spoon");//沙拉 匙 } }
public class soupspoon extends basespoon { public soupspoon() { setname("soup spoon");//汤匙 } }
/* * 原型模式 * 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 * prototype原型模式是一种创建型设计模式,prototype模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何如何创建的细节, * 工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建。 * 在java中 体现为 clone() 对象 */ public class test { public static void main(string[] args) throws clonenotsupportedexception { //创建原型 basespoon soup1 = new soupspoon(); basespoon salad1 = new saladspoon(); //clone原型 得到新对象 soupspoon soup2 = (soupspoon) soup1.clone(); saladspoon salad2 = (saladspoon) salad1.clone(); //输出clone后原型和对应新对象的名字 system.out.println("clone 后:" + soup1.getname() + "-" + soup2.getname()); system.out.println("clone 后:" + salad1.getname() + "-" + salad2.getname()); soup1.setname("soup1 spoon"); salad1.setname("salad1 spoon"); soup2.setname("soup2 spoon"); salad2.setname("salad2 spoon"); system.out.println("属性重新赋值后:" + soup1.getname() + "-" + soup2.getname()); system.out.println("属性重新赋值后:" + salad1.getname() + "-" + salad2.getname()); } }
以上就是java 原型(prototype)模式的代码示例的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product