zoukankan      html  css  js  c++  java
  • GoF23种设计模式之创建型模式之原型模式

    一、概述

            用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

    二、适用性

    1.当一个系统应该独立于它的产品创建、构成和表示的时候。

    2.当要实例化的类是在运行时刻指定的时候,例如:通过动态装载。

    3.为了避免创建一个与产品类层次平行的工厂类层次的时候。

    4.当一个类的实例只能有几个不同状态组合中的一种的时候。

            建立相应数目的原型并克隆它们可能要比每次用合适的状态手工实例化该类更方便一些。

    三、参与者

    1.Prototype:声明一个克隆自身的接口。

    2.ConcretePrototype:实现一个克隆自身的操作。

    3.Client:让一个原型克隆自身从而创建一个新的对象。

    四、类图


    五、示例

    Prototype

    package cn.lynn.prototype;
    
    public class Snake implements Cloneable {
    
        private String name;
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    
        public Object clone() {
            try {
                return super.clone();
            } catch (Exception e) {
                e.printStackTrace();
                return null;
            }
        }
    
    }
    
    ConcretePrototype

    package cn.lynn.prototype;
    
    public class WhiteSnake extends Snake {
    
        public WhiteSnake(String name) {
            setName(name);
        }
    
    }
    

    Client
    package cn.lynn.prototype;
    
    public class Client {
    
        public static void main(String[] args) {
            Snake snake1 = new WhiteSnake("我是白素贞");
            Snake snake2 = (Snake) snake1.clone();
            System.out.println(snake1.getName());
            System.out.println(snake2.getName());
        }
    
    }
    
    Result
    我是白素贞
    我是白素贞
  • 相关阅读:
    jQuery 语法
    jQuery 简介
    把数据存储到 XML 文件
    XML 注意事项
    XML DOM (Document Object Model) 定义了访问和操作 XML 文档的标准方法。
    通过 PHP 生成 XML
    XML 命名空间(XML Namespaces)
    XML to HTML
    XMLHttpRequest 对象
    使用 XSLT 显示 XML
  • 原文地址:https://www.cnblogs.com/innosight/p/3271159.html
Copyright © 2011-2022 走看看