1.相比于简单工厂模式:简单工厂模式违背了“开封-封闭”原则,如果需要增加“求M数的N次方”,需要修改运算工厂的方法,在Case分支中增加代码。
工厂方法模式让子类决定实例化哪一个类,子类的上面是一个用于创建对象的接口
2.UML图:
3.
namespace HT.FDBMS.Controls { #region===================Product=================== public abstract class BaseDataUpdate { public virtual void Run() { } } #endregion #region===============ConcreteProduct=============== public class DataStore : BaseDataUpdate { public override void Run() { } } public class DataVersionManager : BaseDataUpdate { public override void Run() { } } #endregion #region===================Creator=================== public interface IBaseDataUpdateFactory { BaseDataUpdate CreateBaseDataUpdateClass(); } #endregion #region===============ConcreteCreator=============== public class DataSotoreFactory : IBaseDataUpdateFactory { public BaseDataUpdate CreateBaseDataUpdateClass() { return new DataStore(); } } public class DataVersionManagerFactroy : IBaseDataUpdateFactory { public BaseDataUpdate CreateBaseDataUpdateClass() { return new DataVersionManager(); } } #endregion }