zoukankan      html  css  js  c++  java
  • 原型模式

    原型模式允许一个对象再创建另外一个可定制的对象,根本无需知道任何创建的细节。

    客户角色:客户类提出创建对象的请求

    抽象原型角色:定义clone()方法

    具体原型角色:实现clone()方法


    public interface Prototype extends Cloneable{
       
    Prototype clone();

    }

    public class ConcreatePrototype implements Prototype
    {
        public Object clone()
        {
            try
            {
            return super.clone();
       
            }
            catch(CloneNotSupportedException e)
            {
                return null;
            }
        }
    }

    public class Client
    {
        private Prototype prototype;
       
        public void operation(Prototype example)
        {
            Prototype p=(Prototype)example.clone();
        }
    }

    public class Text
    {
        public static void main(String[] args)
        {
            Client client=new Client();
            Prototype prototype=new Prototype();
            client.operation(prototype);
        }
    }

    克隆必须满足的条件:
    a.对任何的对象x,都有:x.clone() != x,即克隆对象与原对象不是同一个对象。
    b.对任何的对象x,都有:x.clone().getClass() == x.get getClass(),即克隆对象与原对象的类型是一样的。 c.如果对象x的equals()方法定义恰当的话,那么x.clone().equals(x)应当是成立的。
    在java中实现clone()应该满足这三个条件。

  • 相关阅读:
    python 展开嵌套列表
    python对字典排序
    CentOS7 Network Setting
    华为交换机Stelnet ssh/rsa验证模式下16进制公钥生成方法
    CentOS7 DHCP自动获取IP地址
    拔掉网线才能登陆域
    Exchange日志清理
    Exchange日志
    EMS邮箱数据库常用命令(二)
    EMS邮箱数据库常用命令(一)
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1933316.html
Copyright © 2011-2022 走看看