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

    (一)原型设计模式 结构图

       原型模式其实就是从一个对象再创建另外一个可定制的对象,而且不需要知道任何创建的细节.

    (二) 原型模式代码

    原型类

    abstract class Prototype{
        private String id;
        
        public Prototype(String id){
               thid.id = id;       
        }
        public String Id{
               get{ retrun id;}    
        }  
        public abstract Prototype Clone();
    }

    具体原型类

    class ConcretePrototype1 : Prototype{
      public ConcretePrototype1(String id) : base(id){
      }
      
      public override Prototype Clone(){
        return (Prototype)this.MemberwiseClone();
      } 
    }

    客户端代码

    static void Main(String[] args){
    
      ConcretePrototype1 p1 = new  ConcretePrototype1("I");
    
      ConcretePrototype1 c1 = (ConcretePrototype1)p1.Clone();
    
      Console.WriteLine("Cloned:{0}",c1.Id);
    
      Console.Read();
    
    }

    (三)浅赋值和深复制

      如果字段是值类型的,则对该字段执行逐位复制,如果字段是引用类型,则复制引用但不复制引用的对象.

       

      浅复制: 被复制对象的所有变量都含有与原来的对象相同的值,而所有的对其他对象的引用都仍然指向原来的对象.

      深复制: 深复制把引用对象的变量指向复制过的新对象,而不是原有的被引用的对象.


       

  • 相关阅读:
    dart中Map类型详解
    洛谷P1582 倒水(二进制)
    maven依赖 临时转阿里云镜像
    java jdbc 连接数据库
    java 常用类
    java 异常处理
    java 对象 this static 封装
    java 面对对象 内存分析
    团队开发 git
    java 代码块
  • 原文地址:https://www.cnblogs.com/misscai/p/9946120.html
Copyright © 2011-2022 走看看