《大话设计模式》笔记

Chap1 简单工厂

工厂模式,就是通过工厂类来根据需求创建出真正所需的类。
包含以下内容:

  1. 创建出来的是对象
  2. 工厂类封装了对象的创建过程
  3. 利用多态来创建不同的对象。

示例:

public class Operation
{
    private double _numberA = 0;
    private double _numberB = 0;
    
    public double NumberA
    {
        get {return _numberA;}
        set {_numberA = value;}
    }
    public double NumberB
    {
        get {return _numberB;}
        set {_numberB = value;}
    }
    public virtual double getResult()
    {
        double result = 0; 
        return result;
    } 
}

class OperationAdd : Operation
{
    public override double getResult()
    {
        double result = 0; 
        result = NumberA + NumberB;
        return result;
    }
}

class OperationSub : Operation
{
   public override double getResult()
    {
        double result = 0;
        result = NumberA - NumberB;
        return result;
    }
}

class OperationMul : Operation
{
    public override double getResult()
    {
        double result = 0;
        result = NumberA * NumberB;
        return result;
    }
}

class OperationDiv : Operation
{
    public override double getResult()
    {
        double result = 0;
        if (NumberB==0)
            throw new Exception("除数不能为0。");
        result = NumberA / NumberB;
        return result;
    }
}

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;
    }
}
Operation oper;
oper = OperationFactory.createOperate(strOperate);
oper.NumberA = Convert.ToDouble(strNumberA);
oper.NumberB = Convert.ToDouble(strNumberB);
strResult = oper.GetResult().ToString();

Chap2 策略模式

策略模式(Strategy),定义了算法族,分别封装起来,让他们之间可以

Chap3 单一职责原则

单一职责原则,Single Responsibility Principle(SRP)。
官方定义就是:一个类或者一个模块应该有且仅有一个能够令其改变的原因。
通俗解释就是:一个程序内各个单元的划分要尽可能精简清晰,单元之间充分低耦合,一个单元(模块、类、函数)所做的事情要简单明了,单元自身充分高内聚。单元承担的责任要单一,如果责任多了就要立刻进行切割。而评判是否责任过多,则需要酌情分析。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值