`
直线曲线
  • 浏览: 47067 次
  • 性别: Icon_minigender_1
  • 来自: 河北
社区版块
存档分类
最新评论

29日学习原型设计模式

    博客分类:
  • java
阅读更多
今天阅读一设计模式的pdf,学习到原型设计模式的时候,看如下的例子有些摸不到头脑了。通过实践,判定其为错误的实现,对该pdf的作者很无语的。
其实现的代码如下:
public abstract class AbstractSpoon implements Cloneable{
	@Override
	protected Object clone() throws CloneNotSupportedException {
		System.out.println("clone");
		// TODO Auto-generated method stub
		Object object = null;
		try{
			object = super.clone();
		}catch(CloneNotSupportedException e){
			
		}
		return object;
	}
	
	public abstract void out();

	private String spoonName = null;

	public String getSpoonName() {
		return spoonName;
	}

	public void setSpoonName(String spoonName) {
		this.spoonName = spoonName;
	}	
}
public class Spoon1 extends AbstractSpoon{
	public Spoon1(){
		setSpoonName("spoon1");
	}
	@Override
	public void out() {
		// TODO Auto-generated method stub
		System.out.println(this.getSpoonName());
	}
	
}
public class Spoon2 extends AbstractSpoon{
	public Spoon2(){
		setSpoonName("spoon2");
	}
	public void out(){
		System.out.println(getSpoonName());
	}
}
public class MainTest {
	public static void main(String[] args){
		AbstractSpoon spoon1 = new Spoon1();
		AbstractSpoon spoon2 = new Spoon2();
		System.out.print("spoon1 ");spoon1.out();
		System.out.print("spoon2 ");spoon2.out();
	}
}

运行后发现根本就没有调用clone中的输出,也就是spoon2不是clone出来的。
通过查资料,通过以下uml图(在附件中)并实践的确实现了原型模式:
子类应包含父类的对象作为成员,子类构造函数中应显示调用该成员的clone方法,然后再对clone出的新对象进行修改。

  • 大小: 44 KB
分享到:
评论

相关推荐

    ASP/ACCESS毕业论文:毕业设计综合管理系统(全套论文 代码 演示P.rar

    随着计算机及计算机网络的普及和全国各院校的校园网络的日益完善、健全,各种工作的计算机网络化将逐步取代繁重的传统办公模式。毕业设计作为大学生四年学习的重要环节,也有必要实行计算机网络化管理,从而减轻设计...

    Silverlight 2.0 发现之旅系列课程.pdf

    - **课程时间**:每周二上午10点,分别在4月1日、8日、22日和29日举行。 #### 三、北极站课程内容概览 - **Level 100 北极站**: - **主要内容**:介绍Silverlight的基本概念、新特性演示、快速上手指南、路线图及...

    电子相册-UI设计.docx

    目录 第一部分:课题背景 当今社交应用现状分析 针对课题群体的社交应用现状分析及发展趋势 第二部分:设计分析 电子毕业纪念册使用人群的分析 电子毕业纪念册的使用情境分析 电子毕业纪念册的功能原型的详细构建 3...

    互联网创新创业大赛总结.pptx

    河南省第二届“互联网+”大学生创新创业大赛,于2016年8月28日至29日在河南大学举办,吸引了包括郑州大学、河南大学在内的45所高校的94个参赛项目,这些项目分为创意组、初创组和成长组。大赛旨在激发学生的创新思维...

    飞思卡尔cotex m0+ MKL25开发板原理图

    - **修正J10方向**: C 版本修正了J10接口的方向问题,并于2012年6月29日完成原型修订。 - **重新设计**: CX1 版本进行了初步的重新设计,随后于2012年7月10日发布了重新设计后的版本D。 综上所述,飞思卡尔Cortex ...

    IOS人机交互中文

    **背景:**本文档是苹果公司在2010年11月15日合并iPad HIG与iPhone HIG后发布的,由朱晨翻译成中文,旨在帮助中国的交互设计师和开发者更好地理解苹果的设计规范。 #### 二、平台特点 1. **屏幕的重要性:** - **...

    复旦nois教材01.rar

    2.3.3 为器件引脚分配信号...........................................................................................29 2.3.4 确认引脚分配...................................................................

    元器件应用中的富士通推出32位RISC微控制器..

    富士通微电子公司在3月29日发布了一款创新性的32位RISC(精简指令集)微控制器系列,这款产品专为各种嵌入式控制应用,特别是数字家电领域设计。微控制器的核心是高性能的FR60内核,其运行频率高达50MHz,具备强大的...

    自己动手写操作系统(含源代码).part2

    Woodhull的《操作系统:设计与实现》来学习操作系统的读者,本书尤其适合作为你的引路书籍,因为它翔实地介绍了初学者入门时所必需的知识积累,而这些知识在《操作系统:设计与实现》一书中是没有涉及的,笔者本人...

    自己动手写操作系统(含源代码).part1

    Woodhull的《操作系统:设计与实现》来学习操作系统的读者,本书尤其适合作为你的引路书籍,因为它翔实地介绍了初学者入门时所必需的知识积累,而这些知识在《操作系统:设计与实现》一书中是没有涉及的,笔者本人...

Global site tag (gtag.js) - Google Analytics