原型模式

         原型模式:用原型實例指定創建對象的種類,並通過拷貝這些原型創建新的對象;

         以下爲原型模式的UML圖:


運行模式實際就是通過一個對象再創建另一個可定製的對象,而且不需要知道任何創建的細節;

實現代碼如下:

abstract class ProtoType
    {
        private string id;
        public ProtoType(string id)
        {
            this.id = id;
        }

        public string ID
        {
            get { return this.id; }
        }

        public abstract ProtoType Clone();
    }

    class ConcreteProtoTypeA : ProtoType
    {
        public ConcreteProtoTypeA(string id)
            : base(id)
        { }

        public override ProtoType Clone()
        {
            return (ProtoType)this.MemberwiseClone();
        }
}


創建當前對象的淺表副本,方法時創建一個新對象,將當前對象的非靜態字段複製到該新對象,如果字段是值類型,則對該字段執行逐位複製,如果是引用類型,則複製引用但不復制引用的對象,因此,原始對象及其副本引用同一對象;

起始對於.Net而言,原型抽象類ProtoTyoe不需要,只需要類實現IClone接口,在Clone方法中實現對象的複製即可;


發佈了41 篇原創文章 · 獲贊 7 · 訪問量 14萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章