(1)简单工厂模式

由于我对C#的理解尚不深入,所以在学习设计模式过程中一并对C#知识进行总结,以供自己以后学习回顾之用。

  • 命名要规范

不规范:

Console.Write("请输入数字A");

string A = Console.ReadLine();

规范:

Console.Write("请输入数字A");

string strNumberA = Console.ReadLine();

 

  • Trycatch

写程序时一定要考虑到异常情况,捕捉错误并进行异常处理显得尤为重要。在计算器的例子中考虑到除数可能输入为0,故应增加该语句。

try-catch 语句由一个 try块后跟一个或多个 catch 子句构成,这些子句指定不同的异常处理程序。

  • Switch

switch语句是一个控制语句,选择“开关部分” 从候选列表中执行。

每个开关部分包含一个或多个用例标签和含有一个或多个语句的列表。

例如:

switch (strOperate)
            {
                case "+":
                    strResult = strNumberA + strNumberB;
                    break;
                case "-":
                    strResult = strNumberA - strNumberB;
                    break;
            }

面向对象的好处:

面向对象的分析设计编程思想好处在于,可以通过封装、继承、多态把程序的耦合度降低,使程序更加灵活,容易修改,并且易于复用。

有人说,初级程序员的工作就是Ctrl+CCtrl+V,这样的话,当代码中重复多到一定程度,维护的时候就是一场灾难。所以我们要尽可能抽象出类,分别进行编程。

简单工厂模式的核心:

在计算器的例子中,定义Operation运算类,这是一个抽象类,有NumberANumberB两个属性以及虚方法GetResult()。再定义子类,可继承Operation运算类,包括加减乘除,这里可扩展。接下来用一个特殊的类来实例化对象,这就是工厂,如定义OperationFactory类,简单运算工厂类代码如下:

public class OperationFactory
    {
        public static Operation createOperate(string operate)
        {
            Operation oper = null;
            switch (operate)
            {
                case "+":
                    oper = new OperationAdd();
                    break;
                case "-":
                    oper = new OperationSub();
                    break;
                case"*":
                    oper=new OperationMul();
                    break;
                case("/"):
                    oper = new OperationDiv();
                    break;
            }
            return oper;
        }
    }

这样根据输入运算符工厂就实例化出合适的对象,通过多态返回父类的方式实现计算器的结果。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值