• 原型模式


    设计模式的意义在于:面向业务内容、业务数据结构和系统架构,高内聚低耦合、优雅的将平面逻辑立体化。

     1 package designPattern;
     2 /**
     3  * 原型模式
     4  * @author Administrator
     5  */
     6 public class C20_PrototypeTest {
     7 
     8     /**
     9      * 用原型实例指定创建对象的种类,并且通过copy这些原型创建新的对象
    10      * 适用性:
    11      * 1,一个系统应该独立于他的产品创建,构成和表示
    12      * 2,要实例化的类是运行时指定的,例如:通过动态加载
    13      * 3,为了避免创建一个与产品类层次平行的的工厂类层次
    14      * 4,当一个类的实例只能有几个不同状态组合中的一种
    15      * 建立适当的模型并克隆他们可能比每次用合适的状态手工实例化该类更方便一些
    16      */
    17     public static void main(String[] args) {
    18         Prototype pro1=new ConcretePrototype("concretePrototype");
    19         Prototype pro2=(Prototype)pro1.clone();
    20         System.out.println(pro2.getName());
    21         System.out.println(pro1.getName());
    22     }
    23 }
    24 //1,Prototype 声明一个克隆自身的接口
    25 class Prototype implements Cloneable
    26 {
    27     private String name;
    28     public String getName() {
    29         return name;
    30     }
    31     public void setName(String name) {
    32         this.name = name;
    33     }
    34     @Override
    35     protected Object clone()
    36     {
    37         try {
    38             return super.clone();
    39         } catch (Exception e) {
    40             System.out.println(e.getMessage());
    41             return null;
    42         }        
    43     }    
    44 }
    45 
    46 //2,ConcretePrototype 实现一个克隆自己的操作
    47 class ConcretePrototype extends Prototype
    48 {
    49     ConcretePrototype(String name)
    50     {
    51         setName(name);
    52     }
    53 }

    环境:JDK1.6,MAVEN,tomcat,eclipse

    源码地址:http://files.cnblogs.com/files/xiluhua/designPattern.rar

    欢迎亲们评论指教。

  • 相关阅读:
    【2017 Multi-University Training Contest
    【2017 Multi-University Training Contest
    【Uva 1543】Telescope
    Information centric network (icn) node based on switch and network process using the node
    JQuery实现放大镜
    JQuery实现放大镜
    JS关闭浏览器 (不弹出提示框)
    JS关闭浏览器 (不弹出提示框)
    JS关闭浏览器 (不弹出提示框)
    MVC5 Controller构造方法获取User为空解决方法
  • 原文地址:https://www.cnblogs.com/xiluhua/p/4413816.html
Copyright © 2020-2023  润新知