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学习笔记9:变量作用域和列表
    Python文摘:argmin/argmax 与 idxmin/idxmax
    SQL学习笔记8
    SQL学习笔记7
    SQL学习笔记6
    SQL学习笔记5
    SQL文摘:sql(join中on与where区别)
    SQL学习笔记4
    SQL学习笔记3
    机器学习基石第三讲 Types of Learning
  • 原文地址:https://www.cnblogs.com/jinzhengquan/p/1933316.html
Copyright © 2011-2022 走看看