设计模式-原型模式 – 张龙豪

设计模式-原型模式 – 张龙豪

绪论

点击检查:设计模式落山

原型模式(Prototype)

了解:原型模式属于安排型模式,厂子,单件,在发电机模式中有类似之处。,那执意安排物体。,而原型模式最大的特征执意对单独基类物体停止机械行事的人复制品安排出前任的同上的复本,停止操控。

援用:

教育即将开学了。,让我们接合处录取入学吧。

根本物体(通常是相互作用),理论上的类):题目(考卷)

原型模式的归还原主机械行事的人:按请捣碎贴纸,喂的考卷是抄考卷的。

客户端:先生答复,同样组卷,先生不克不及做异样的事实。

类图:

相互作用:考卷范本法典

////// 选答题
    ///publicclass SelectTest
    {
        privatestring other;
        publicstring 你夫人多大了?
        {
            get
            {
                returnthis.other;
            }
            set
            {
                this.other = value;
            }
        }
    }
    ////// 面题目
    ///publicinterface Itest
    {
        Itest Clone();

        string 你你确信设计模式吗??
        {
            get;
            set;
        }
        string 有几种设计模式。
        {
            get;
            set;
        }
        string 你确信那些的
        {
            get;
            set;
        }
        SelectTest 附加题
        {
            get;
            set;
        }

        Test Test
        {
            get;
            set;
        }

        Test Test1
        {
            get;
            set;
        }
    }

复制品机械行事的人:盲目模仿者

////// 继位ITEST相互作用
    ///publicclass Test : Itest
    {
        privatestring one;
        privatestring two;
        privatestring three;
        private SelectTest other=new SelectTest();
        publicstring 你你确信设计模式吗??
        {
            get
            {
                returnthis.one;
            }
            set
            {
                this.one = value;
            }
        }
        publicstring 有几种设计模式。
        {
            get
            {
                returnthis.two;
            }
            set
            {
                this.two = value;
            }
        }
        publicstring 你确信那些的
        {
            get
            {
                returnthis.three;
            }
            set
            {
                this.three = value;
            }
        }
        public SelectTest 附加题
        {
            get
            {
                returnthis.other;
            }
            set
            {
                this.other = value;
            }
        }
        #region IColorDemo 围攻

        public Itest Clone()
        {
            //机械行事的人以后类return (伊斯特)this.MemberwiseClone();
        }
        #endregion
    }

客户端,发卷

staticvoid Main()
        {
            //印刷考卷
            Itest test = new Test();
            //复样纸
            Itest test1 = ();
            
            //考生1
            test.有几种设计模式。 = "23";
            test.附加题.你夫人多大了? = "18";

            //考生2
            test1.有几种设计模式。 = "24";
            test1.附加题.你夫人多大了? = "20";

            //显示考生的答案
            ("test有几种设计模式。:" + test.有几种设计模式。);    //23
            ("test附加题.你夫人多大了?:" + test.附加题.你夫人多大了?);    //20
            ("test1有几种设计模式。:" + test1.有几种设计模式。);   //24
            ("test1附加题.你夫人多大了?:" + test1.附加题.你夫人多大了?);  //20

            Console.ReadKey();
        }

留意:喂的两人身攻击的答复特色。,为什么诘问,夫人年纪是20岁?

喂关涉吃水拷贝。,浅拷贝成绩,值典型积蓄在堆栈上。,复制品后,Add将在车站重行准备。,类属于援用典型。,复制品后,在堆栈上重行分派支持。,可以落到同样状态的资源。。浅拷贝,仅复制品值典型,深拷贝,援用典型也被复制品和复制品。。

receive 接收: 

public Itest Clone()
        {
            //机械行事的人以后类
            Itest itst= (伊斯特)this.MemberwiseClone();
            SelectTest st = new SelectTest();
            st.你夫人多大了? = this.other.你夫人多大了?;
            Itst。附加成绩 = st;
            return itst;

        } 

应用序列化求解

答案的结束,总结原型模式

原型模式的服用很多,拿 … 来说,如今更盛行的ORM技术。,修正,用材料校订者先前的原型。,机械行事的人原型战利品并复制品它们。,那么让两个校订者器对比地先前和晚年的的物体。,结果是同卵的的,它将不熟练的被修正。,相反,经过行使更新开发SQL宣判。。原型模式的算术尽管如此很共有权的,因他快而便宜地安排新的物体。,它们可以在运转时经过机械行事的人来添加和停止。,它还可以依据境遇修正类说话中肯材料。,可以在不安排类的境遇下运转新的物体。。

受欢迎的左上视频博客群。,一致根究,设计模式,材料库,c#.net,材料结构。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Message *
Name*
Email *