工厂方法模式

1.相比于简单工厂模式:简单工厂模式违背了“开封-封闭”原则,如果需要增加“求M数的N次方”,需要修改运算工厂的方法,在Case分支中增加代码。

工厂方法模式让子类决定实例化哪一个类,子类的上面是一个用于创建对象的接口

2.UML图:

image

 

image

 

image

 

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
}
posted @ 2013-11-22 20:43  ccjcjc  阅读(173)  评论(0编辑  收藏  举报