java中的原型模式_java中的原型模式理解
//测试类
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中的原型模式理解相关推荐
- java模板方法模式_Java中的模板方法模式
java模板方法模式 模板方法模式是一种行为模式,建议在超类中更一般地定义算法. 该算法是在称为模板方法的方法中定义的. 子类仅定义更具体的算法步骤的实现. 使用这种设计模式的好处是,算法后面的任何更 ...
- java设计模式 订阅模式_Java中的复合设计模式
java设计模式 订阅模式 当我们必须使用对象的树状分层结构时,复合设计模式非常有用. 它使我们能够统一对待单个对象和对象组成. 它属于结构设计模式的范畴,因为它将对象组合成树形结构以表示部分整个层次 ...
- java设计模式迭代器模式_Java中的迭代器设计模式–示例教程
java设计模式迭代器模式 迭代器模式是一种行为模式,它用于提供遍历一组对象的标准方式. Iterator模式在Java Collection Framework中得到了广泛使用,其中Iterator ...
- java 工厂方法模式_Java中的工厂方法模式
java 工厂方法模式 在上一篇有关模板方法模式的文章中 ,我展示了如何利用lambda表达式和默认方法 . 在本文中,我将探讨工厂方法模式,并了解如何利用方法引用,这是Java 8中与lambda表 ...
- java 职责链模式_Java中的责任链模式
java 职责链模式 当应有几个处理器来执行某项操作并为这些处理器定义特定顺序时,就需要采用责任链设计模式. 在运行时处理器顺序的可变性也很重要.模式的UML表示如下: 处理程序定义处理器对象的一般结 ...
- java中的工厂模式_java中工厂模式详解和使用方法
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一.这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式. 在工厂模式中,我们在创建对象时不会对客户端暴露创建逻 ...
- java中装潢模式_JAVA中的设计模式四(装饰模式)
-------装饰模式 装饰模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构.这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装. 这种模式创建 ...
- Java NIO_I/O基本概念_Java中的缓冲区(Buffer)_通道(Channel)_网络I/O
I/O基本概念 缓冲区基础 缓冲区是I/O的基础, 进程使用read(), write()将数据读出/写入从缓冲区中; 当缓冲区写满, 内核向磁盘发出指令, 将缓冲区中数据写入磁盘中(这一步不需要CP ...
- java内存堆和栈_java中堆,栈主要区别及内存存储
java堆.栈.堆栈的区别 1.栈(stack)与堆(heap)都是Java用来在Ram中存放数据的地方.与C++不同,Java自动管理栈和堆,程序员不能直接地设置栈或堆. 2. 栈的优势是,存取速度 ...
- java中定义一个时间_Java中的日期和时间
根据个人目前正在编写的<Java核心编程-基础篇>的规划,这部分属于第15章内容,这里沿用了书中的章节编号.另外,因为原文篇幅太长,这里适当做了删减. 15.1.概述 在 Java 8 之 ...
最新文章
- java feature get_Java ShapeFeature.getLocations方法代码示例
- python 中的序列
- Redis集群理论知识
- Nearest Common Ancestors
- JavaScript中window对象属性,时间等的总结
- 【转】ABP源码分析二十八:ABP.MemoryDB
- 项目部署到weblogic后页面乱码问题
- 你看那个人他像一条狗
- 收集:Hibernate中常见问题 No row with the given identifier exists问题的原因及解决
- JS AES加密与PHP解密
- HTML5开发手机项目—个人总结
- linux 串口终端源码,LINUX 串口通讯源码
- 2017年第八届CSTQB®国际软件测试高峰论坛议题征集启动
- 公司知识库的搭建步骤
- Jeg lurer p? om vi skulle v?re ? parajumpers jakke tenke p? hva som kan
- ctfshow 萌xin赛
- docker内创建文件夹失败
- mysql怎么把只读改为读写
- 计算机模拟和建模仿真算法
- php编程输出心形图案_利用php输出不同的心形图案_PHP
热门文章
- python正则表达式之match,search,findall区别
- zabbix 5.0所有依赖包_Zabbix“专家坐诊”第82期问答汇总
- VS2012下基于Glut OpenGL glDepthMask示例程序:
- Linux内核协议栈分析之——tcp/ip通信并不神秘
- Ruby设计模式透析之 —— 单例(Singleton)
- java8 comparator接口_Java8 Comparator 排序方法
- iOS 52个技巧学习心得笔记 第一章 熟悉OC
- explain分析sql效果
- 我写的这些opensource项目
- Atitit.研发管理如何避免公司破产倒闭的业务魔咒