//测试类

public class TestPrototype {

/**

* @param args

*/

public static void main(String[] args) {

Sheep d1=new DuoLiSheep();

Sheep d2=new DuoMeiZiSheep();

System.out.println(d1.SheepName);

System.out.println(d2.SheepName);

}

}

//抽象原型羊,有一个公开访问的可读可写的方法

//java的cloneable实现了copy的方法,正好在这个模式用上,当然在此基础上,必须得实现CloneAble

//接口的克隆方法了

abstract class Sheep implements Cloneable {

/*

Sheep(){

System.out.println("Sheep");

};

*/

String SheepName;

public void SetSheepName(String _SheepName)

{

this.SheepName=_SheepName;

}

public String GetSheepName()

{

return SheepName;

}

public Object Clone()

{

Object obj=null;

if(null==obj)

{

try{

obj=super.clone();

}catch(CloneNotSupportedException e)

{

return obj;

}

}

return obj;

}

}

//发出要克隆的命令(多利羊)

class DuoLiSheep extends Sheep

{

public DuoLiSheep()

{

SetSheepName("DuoLiSheep");

}

}

//发出要克隆的命令(多美滋羊)

class DuoMeiZiSheep extends Sheep

{

public DuoMeiZiSheep()

{

SetSheepName("DuoMeiZiSheep");

}

}

java中的原型模式_java中的原型模式理解相关推荐

  1. java模板方法模式_Java中的模板方法模式

    java模板方法模式 模板方法模式是一种行为模式,建议在超类中更一般地定义算法. 该算法是在称为模板方法的方法中定义的. 子类仅定义更具体的算法步骤的实现. 使用这种设计模式的好处是,算法后面的任何更 ...

  2. java设计模式 订阅模式_Java中的复合设计模式

    java设计模式 订阅模式 当我们必须使用对象的树状分层结构时,复合设计模式非常有用. 它使我们能够统一对待单个对象和对象组成. 它属于结构设计模式的范畴,因为它将对象组合成树形结构以表示部分整个层次 ...

  3. java设计模式迭代器模式_Java中的迭代器设计模式–示例教程

    java设计模式迭代器模式 迭代器模式是一种行为模式,它用于提供遍历一组对象的标准方式. Iterator模式在Java Collection Framework中得到了广泛使用,其中Iterator ...

  4. java 工厂方法模式_Java中的工厂方法模式

    java 工厂方法模式 在上一篇有关模板方法模式的文章中 ,我展示了如何利用lambda表达式和默认方法 . 在本文中,我将探讨工厂方法模式,并了解如何利用方法引用,这是Java 8中与lambda表 ...

  5. java 职责链模式_Java中的责任链模式

    java 职责链模式 当应有几个处理器来执行某项操作并为这些处理器定义特定顺序时,就需要采用责任链设计模式. 在运行时处理器顺序的可变性也很重要.模式的UML表示如下: 处理程序定义处理器对象的一般结 ...

  6. java中的工厂模式_java中工厂模式详解和使用方法

    工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻 ...

  7. java中装潢模式_JAVA中的设计模式四(装饰模式)

    -------装饰模式 装饰模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. 这种模式创建 ...

  8. Java NIO_I/O基本概念_Java中的缓冲区(Buffer)_通道(Channel)_网络I/O

    I/O基本概念 缓冲区基础 缓冲区是I/O的基础, 进程使用read(), write()将数据读出/写入从缓冲区中; 当缓冲区写满, 内核向磁盘发出指令, 将缓冲区中数据写入磁盘中(这一步不需要CP ...

  9. java内存堆和栈_java中堆,栈主要区别及内存存储

    java堆.栈.堆栈的区别 1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2. 栈的优势是,存取速度 ...

  10. java中定义一个时间_Java中的日期和时间

    根据个人目前正在编写的<Java核心编程-基础篇>的规划,这部分属于第15章内容,这里沿用了书中的章节编号.另外,因为原文篇幅太长,这里适当做了删减. 15.1.概述 在 Java 8 之 ...

最新文章

  1. java feature get_Java ShapeFeature.getLocations方法代码示例
  2. python 中的序列
  3. Redis集群理论知识
  4. Nearest Common Ancestors
  5. JavaScript中window对象属性,时间等的总结
  6. 【转】ABP源码分析二十八:ABP.MemoryDB
  7. 项目部署到weblogic后页面乱码问题
  8. 你看那个人他像一条狗
  9. 收集:Hibernate中常见问题 No row with the given identifier exists问题的原因及解决
  10. JS AES加密与PHP解密
  11. HTML5开发手机项目—个人总结
  12. linux 串口终端源码,LINUX 串口通讯源码
  13. 2017年第八届CSTQB®国际软件测试高峰论坛议题征集启动
  14. 公司知识库的搭建步骤
  15. Jeg lurer p? om vi skulle v?re ? parajumpers jakke tenke p? hva som kan
  16. ctfshow 萌xin赛
  17. docker内创建文件夹失败
  18. mysql怎么把只读改为读写
  19. 计算机模拟和建模仿真算法
  20. php编程输出心形图案_利用php输出不同的心形图案_PHP

热门文章

  1. python正则表达式之match,search,findall区别
  2. zabbix 5.0所有依赖包_Zabbix“专家坐诊”第82期问答汇总
  3. VS2012下基于Glut OpenGL glDepthMask示例程序:
  4. Linux内核协议栈分析之——tcp/ip通信并不神秘
  5. Ruby设计模式透析之 —— 单例(Singleton)
  6. java8 comparator接口_Java8 Comparator 排序方法
  7. iOS 52个技巧学习心得笔记 第一章 熟悉OC
  8. explain分析sql效果
  9. 我写的这些opensource项目
  10. Atitit.研发管理如何避免公司破产倒闭的业务魔咒