美文网首页
原型模式

原型模式

作者: Stroman | 来源:发表于2018-10-21 21:06 被阅读32次

    这模式是干啥的?

    就是复制一个已经存在的对象,于是这就分为浅复制和深复制。

    浅复制和深复制有啥区别?

    浅复制无需再开辟内存空间,因为它只不过是不同的指针指向了相同的内存空间而已。深复制则需要另开辟内存空间,因为它是指针指向了不同的内存空间。

    浅复制和深复制哪里相同?

    它们都需要不同的指针。

    类图

    效果

    真绵羊
    克隆绵羊0
    克隆绵羊1
    
    Process finished with exit code 0
    

    调用

    package com.company;
    public class Main {
        public static void main(String[] args) {
        // write your code here
            Sheep oneSheep = new Sheep();
            oneSheep.getName();
            Sheep anotherSheep = oneSheep.customCloneMethod();
            anotherSheep.getName();
            Sheep oneMoreSheep = oneSheep.customCloneMethod();
            oneMoreSheep.getName();
        }
    }
    
    

    克隆的接口

    package com.company;
    public interface CommonCloneInterface {
        CommonCloneInterface customCloneMethod();
    }
    
    

    被克隆的类型

    package com.company;
    public class Sheep implements CommonCloneInterface {
        private String name;
        static int cloneCounter = 0;
        public String getName() {
            if (this.name == null)System.out.println("真绵羊");
            else System.out.println(name);
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        @Override
        public Sheep customCloneMethod() {
            Sheep cloneObject = new Sheep();
            cloneObject.setName("克隆绵羊" + cloneCounter++);
            return cloneObject;
        }
    }
    
    

    多谢捧场

    如果您觉得我的文章有价值,那么赏脸打赏一个,鄙人感激不尽。不过,不打赏看看也是好的,如果有不对的地方,还请您多多指正。

    相关文章

      网友评论

          本文标题:原型模式

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