原型模式

作者: TZX_0710 | 来源:发表于2019-09-23 09:20 被阅读0次
    浅克隆
    //clone
    //原型模式是指通过给定一个原型对象来指明所创建的对象类型
    //然后复制这个原型对象创建出多个同类型对象
    //原型模式要求实现一个"克隆"方法 也就是实现一个复制方法
    //抽象原型角色
    public  abstract  class Prototype implements Cloneable {
        protected Object clone() throws CloneNotSupportedException {
            return super.clone();
        }
    }
    
    //具体原型角色 
    public class ConcretePrototype1 extends  Prototype {
    
        @Override
        protected Object clone() throws CloneNotSupportedException {
            System.out.println("cloneA");
            return (ConcretePrototype1)super.clone();
        }
    }
    
    
    
    
    //具体原型角色
    public class ConcretePrototype2 extends  Prototype {
    
        @Override
        protected Object clone() throws CloneNotSupportedException {
            System.out.println("cloneB");
            return (ConcretePrototype2)super.clone();
        }
    }
    
    public class PrototypeTest {
    
        public static void main(String[] args) throws CloneNotSupportedException {
            Prototype prototype=(Prototype) new ConcretePrototype1();
            prototype.clone();
    
            Prototype prototype1=(Prototype) new ConcretePrototype2();
            prototype1.clone();
        }
    }
    
    cloneA
    cloneB
    

    注意:原型模式和单例模式是冲突的,单例模式的构建把构造函数私有化,原型模式采用clone拷贝的方式创建对象是绕过构造的。
    原型模式参与角色:
    客户角色 提出创建的对象
    抽象原型角色 提供clone 拷贝的方法,通常是一个接口或者是一个抽象类都可以。
    具体原型角色 实现抽象原型角色

    相关文章

      网友评论

        本文标题:原型模式

        本文链接:https://www.haomeiwen.com/subject/gziluctx.html