• 原型模式

    普通类
    • 支持
    • 批判
    • 提问
    • 解释
    • 补充
    • 删除
    • 概述

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

    • 适用性

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

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

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

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

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

    • 参与者

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

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

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

    • 类图

    • 例子

    Prototype
    public class Prototype implements Cloneable {

    private String name;

    public void setName(String name) {
    this.name = name;
    }

    public String getName() {
    return this.name;
    }

    public Object clone(){
    try {
    return super.clone();
    } catch (Exception e) {
    e.printStackTrace();
    return null;
    }
    }
    }
    ConcretePrototype
    public class ConcretePrototype extends Prototype {

    public ConcretePrototype(String name) {
    setName(name);
    }
    }
    Client
    public class Test {

    public static void main(String[] args) {
    Prototype pro = new ConcretePrototype("prototype");
    Prototype pro2 = (Prototype)pro.clone();
    System.out.println(pro.getName());
    System.out.println(pro2.getName());
    }
    }
    result
    prototype
    prototype

    • 标签:
    • 克隆
    • 模式
    • public
    • string
    • 创建
    • 原型
    • 实例
    • concreteprototype
    • 型模
    • prototype
    • class
    • return
  • 加入的知识群:
    学习元评论 (0条)

    评论为空
    聪明如你,不妨在这 发表你的看法与心得 ~



    登录之后可以发表学习元评论
      
暂无内容~~
顶部