原型模型-我的情话你也可以用

原型模式比喻
跟女朋友用QQ聊天,一定要说些深情的话语了,我搜集了好多肉麻的情话,需要时只要copy出来放到QQ里面就行了,这就是我的情话prototype-原型模式了。

原型模式意图
原型模式(Prototype)用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。

原型模式类图
www.zhuli8.com-朱利IT博客 

原型模型实现
    /// <summary>
    /// 我的某一句情话
    /// .Net提供了IClone接口,其中有一个唯一的方法Clone(),子类只需要实现这个接口就可以实现原型模式
    /// </summary>
    class Lover : ICloneable
    {
        private String strLover;//情话

        public String StrLover
        {
            get { return strLover; }
            set { strLover = value; }
        }

        /// <summary>
        /// 实现ICloneable接口方法,实现原型模式
        /// </summary>
        /// <returns></returns>
        public object Clone()
        {
            //创建当前对象的浅表副本。
            //创建一个新对象,然后将当前对象的非静态字段复制到该对象。
            //如果字段是值类型,则对该字段执行逐位复制。
            //如果字段是引用类型,则复制引用不复制引用的对象。
            return this.MemberwiseClone();
        }
    }

    /// <summary>
    /// 原型模式客户端应用
    /// </summary>
    class Program
    {
        static void Main(string[] args)
        {
            Lover lover = new Lover();
            lover.StrLover = "我爱你,朱利IT博客 www.zhuli8.com !";
            Console.WriteLine(lover.StrLover);
           
            //我的情话你也想用!
            Lover l = lover.Clone() as Lover;//原型模式中利用对象lover得到新的实例l

            Console.WriteLine(l.StrLover);

            Console.Read();
        }
    }

原型模式总结
只要每一个原型类继承ICloneable配备一个克隆方法,我的情话你一样可以用!

朱利IT博客原创博文:文章地址:http://www.zhuli8.com/sjms/prototype.html

转载于:https://www.cnblogs.com/muzizhu/archive/2012/03/15/2397256.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值