zoukankan      html  css  js  c++  java
  • 大话设计模式之简单工厂模式

    简单工厂模式

      最近朋友推荐了一本书《大话设计模式》,此书刚刚到,博主也还没开始看,希望以博文的方式与大家一起分享,一起学习.

    简单工厂模式,也就是说,到底要实列化谁,将来会不会增加实列化的对象,比如增加开根运算,这是很容易实列化的地方应该考虑用一个单独的类来做这个创造实列的过程,这就是工厂,来我们一起看看这个类如何写。

    简单运算工厂类:

    import public
    
    public class OperationFactory
    {
    	public static OperationFactory(string operate)
    	{
    		Operation oper = null;
    		switch (operate)
    		{
    			case "+";
    				oper = new OperationFactory();
    				break;
    			case "-";
    				oper = new OperationFactory();
    				break;
    			case "*";
    				oper = new OperationFactory();
    				break;
    			case "/";
    				oper = new OperationFactory();
    				break;
    		}
    		return oper;
    	}
    }
    

      看到了吧,这样子只需要输入运算符号,工厂就实列出合适的对象,通过多态,返回父类的方式实现了计算器的结果。

    客户端代码:

    #客户端代码
    
    
    Operation oper;
    oper = OperationFactory.createOperate("+");
    oper.NumberA = 1;
    oper.NumberB = 2;
    double result = oper.GetResult();
    

      界面实现就是这样的代码、不管你是控制台程序,Windows 程序, Web 程序, PDA或手机程序,都可以用这段代码来实现计算器的功能,如果有一天我们需要更改加法运算,我们只需要改 (OperationADD)就可以了,那么我们需要增加各种复杂运算,比如平方根,立方根,自然对数,正弦余弦等,那么如何做呢?(只要增加相应的运算子类就可以了),增加之后,还得需要去修改一下运算类工厂,在switch中增加分支。

      写到这,不知不觉到结尾了,这就是简单的工厂模式,以下是几个类的结构图.

    模式还有很多......待更新

  • 相关阅读:
    机器学习实战
    python中的上下文管理器
    python中的参数传递
    SecureCRT在mac下无法输入中断命令
    Vim练级攻略(转)
    09_MySQL DQL_SQL99标准中的多表查询(外连接)
    08_MySQL DQL_SQL99标准中的多表查询(内连接)
    07_MySQL DQL_多表查询_等值内连接
    06_MySQL DQL_分组查询
    05_MySQL常见函数_分组函数
  • 原文地址:https://www.cnblogs.com/wuyongcong/p/5838423.html
Copyright © 2011-2022 走看看