距离发布上篇软件设计模式文章《建造者模式》稍稍地已经过去两个多月,今天来谈一下第五个创建型模式,这也将是最后一个创建型模式——原型模式(Prototype Pattern)。
定义:
Prototype模式,通过将对象自身进行复制来创建新的对象。多么简单的定义,该模式也很简单。
解决的问题:
- 在运行时如何动态创建一个对象的副本
怎么去解决:
- 通过定义一个含有Clone方法的Prototype接口
- 具体的实现类通过继承Prototype接口来创建自身的复制品
UML:
实例:
using System; namespace PrototypePattern { internal class Program { private static void Main(string[] args) { IProduct product = new ConcreteProduct() { Name = "LED Displayer" }; var clonedProduct = product.Clone(); Console.WriteLine($"This is original object: {product.Name}"); Console.WriteLine($"This is cloned object: {clonedProduct.Name}"); Console.WriteLine($"The both objects is the same or not? {product == clonedProduct}"); Console.ReadKey(); } } public interface IPrototype<T> { T Clone(); } public interface IProduct : IPrototype<IProduct> { string Name { get; set; } } public class ConcreteProduct : IProduct, IPrototype<IProduct> { public string Name { get; set; } public IProduct Clone() { return new ConcreteProduct() { Name = Name }; } } }
One Reply to “原型模式(Prototype Pattern)-创建型模式第五篇”