当前位置:首页软件开发Java → 登记形式的原始模型模式Prototype

登记形式的原始模型模式Prototype

时间:2019-03-29 10:12:43来源:互联网我要评论(0)

登记形式的原始模型模式Prototype

 

/**
 * 抽象原型角色
 */
public interface Apple extends Cloneable{
	
	public Apple clone();
	
	public void setName(String name);
	
	public String getName();
	
	public void setColor(String color);
	
	public String getColor();

}

 

/**
 * 具体原型角色
 */
public class ApplePrototype implements Apple {
	
	private String name;
	
	private String color;

	@Override
	public synchronized Apple clone() {
		Apple apple = null;
		try {
			apple = (Apple) super.clone();
		} catch (CloneNotSupportedException e) {
			e.printStackTrace();
		}
		return apple;
	}

	@Override
	public void setName(String name) {
		this.name = name;
	}

	@Override
	public String getName() {
		return name;
	}

	@Override
	public void setColor(String color) {
		this.color = color;
	}

	@Override
	public String getColor() {
		return color;
	}

}

 

import java.util.Vector;

/**
 * 原型管理器角色
 */
public class AppleManager {
	
	private Vector<Object> objects = new Vector<Object>();
	
	public void add(Apple apple) {
		objects.add(apple);
	}
	
	public Apple get(int i) {
		return (Apple) objects.get(i);
	}
	
	public int getSize() {
		return objects.size();
	}

}

 

/**
 * 客户端角色
 */
public class AppleClient {
	
	private static AppleManager appleManager = new AppleManager();
	
	public static void main(String[] args) {
		Apple apple = new ApplePrototype();
		Apple fushi= apple.clone();
		fushi.setName("富士");
		fushi.setColor("红色");
		Apple guoguang = apple.clone();
		guoguang.setName("国光");
		guoguang.setColor("绿色");
		appleManager.add(fushi);
		appleManager.add(guoguang);
		System.out.println(fushi.getName() + " " + fushi.getColor());
		System.out.println(guoguang.getName() + " " + guoguang.getColor());
		System.out.println(appleManager.getSize());
	}

}

 

相关文章

网友评论

热门评论

最新评论

发表评论 查看所有评论()

昵称:
表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
字数: 0/500 (您的评论需要经过审核才能显示)

关于万荚 | 联系方式 | 发展历程 | 版权声明 | 帮助(?) | 网站地图 | 友情链接

Copyright 2005-2019 16WJ.COM 〖万荚网〗 版权所有 桂ICP备18000060号 |

声明: 本站所有文章来自互联网 如有异议 请与本站联系