当前位置: 爱符号 - 所有分类 - 桌面应用 - C# - 工厂模式的应用
工厂模式的应用 GongChangMoShiDeYingYong
射手座的叹息 发表于:2013-01-23 20:50:58 阅读(14694)
关键词:设计模式 设计模式 工厂模式 工厂模式
摘要:设计模式,工厂模式

在开发项目的时候很多童鞋应该都会碰到过一个功能一会要求加上这个功能一会要求加上这个功能

特别是在项目已经到了验收阶段的时候 在去修改源代码是不是会产生要吊产品经理的冲动:"当初开发的时候为什么不说清楚"

比如在开发商城系统的时候在线支付因为市面上有挺多的支付接口在初始开发完成的时候不可能每次需要添加一个新的接口就重新去修改源代码 这样代价太大而且如果修改的不注意会产生各种关联错误

这种情况我们就会想到应该用什么方法来做 才能使代价相对减少呢

工厂设计模式:

这边我就不解释工厂设计模式的原理 如果童鞋不清楚可以去百度一下 我这边这是给一个案例模型供大家参考学习。

1.定义一个接口


public interface IPay
    {
        #region by:lxd 支付接口
        /// <summary>
        /// 支付方法   
        string PayMethod(string OrderNo, string TotalPrice, string GoodsName);
        #endregion
    }


2.接口的使用(工厂类)

  

public class PayFactory
    {
        #region by:lxd 支付调用工厂方法
        public IPay CallPay(int PayNo)
        {
            switch (PayNo)
            {
                case 0:
                    return new AliPay();//支付宝
                case 1:
                    return new SilverLine();//网银在线
                default:
                    return null;

            }
        }
        #endregion
    }


3.项目中的调用


            

    //集成支付接口         
                PayFactory PayFactory = new PayFactory();//实例化接口
                IPay p = PayFactory.CallPay(PayNo);
                string strHtml = p.PayMethod(OrderNo, TotalPrice.ToString(), GoodsNames);
                Response.Write(strHtml);


ps:

这边的类

AliPay(),SilverLine() 都是继承与IPay这个接口的 

也就是说以后如果要添加别的支付方式 只要修改工厂类PayFactory 就是添加对应的方法类就可以 这样就能保证该改动的代码量最小减少调试时间提高开发效率

如果要做的更只能的话工厂类中的控制都可以通过数据库动态调节控制这样做的话只要把对应的支付类放进去就可以改动还要小 如果有兴趣的朋友可以自己试试

声明:以上内容仅代表作者观点,不代表爱符号赞成此内容或立场
设计模式相关的分享
 
工厂模式相关的分享
 
  • ·暂无相关分享
  •  
作者热播