1. 程式人生 > >【軟考學習】設計模式——原型模式

【軟考學習】設計模式——原型模式

【背景】
設計模式是非常重要的一塊知識,每個設計模式都值得深入瞭解和學習。
【內容】
原型設計模式總結:
    一、定義:用原型例項指定建立物件的種類,並且通過拷貝這些原型建立新的物件。

二、UML結構圖:


     三、程式碼實現:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace 原型模式_基本程式碼
{
    class Program
    {
        static void Main(string[] args)
        {
            ConcretePrototype1 p1 = new ConcretePrototype1("I");
            ConcretePrototype1 c1 = (ConcretePrototype1)p1.Clone();
            Console.WriteLine("Cloned:{0}", c1.Id);
            
            ConcretePrototype2 p2 = new ConcretePrototype2("II");
            ConcretePrototype2 c2 = (ConcretePrototype2)p2.Clone();
            Console.WriteLine("Clone:{0}", c2.Id);
            Console.Read();
        }
    }

    //原型類
    abstract class Prototype
    {
        private string id;
        public Prototype(string id)
        {
            this.id = id;
        }

        public string Id
        {
            get { return id; }
        }
        public abstract Prototype Clone();
    }

    // 具體原型類
    class ConcretePrototype1 : Prototype
    {
        public ConcretePrototype1(string id)
            : base(id)
        { 
        }

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

    class ConcretePrototype2 : Prototype
    {
        public ConcretePrototype2(string id)
            :base(id)
        {
        }

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

}