大话设计模式学习-第一周

第一章 简单工厂

面向对象

通过封装、继承、多态把程序的耦合降低。
使用设计模式使得程序更加灵活,容易修改,易于复用。

简单工厂实现方法

工厂类中定义了所有产品的种类。
只需要把产品的类型输入,并提供产品素材,调用生产方法就可以获得目标结果。

添加新的产品类型的时候,只需新创建产品类,并在工厂中配置即可。不需要修改原先的代码。

String type = "type_name";
Factory.create(type);
Factory.resource = raw_material;
var result = Factory.getResult();

优点:

  • 子产品之间不存在耦合关系,便于添加产品。

第二章 策略模式

定义算法家族,分别封装,相互可以替换。替换算法不会影响使用算法的客户。
上下文类中定义了一个策略接口,定义了上下文接口(内部调用策略接口。会根据传入策略的实现类,调用子类实现的具体策略方法)。

上下文生成的时候需要实例化策略接口。

 Context context = new Context(new Strategy());
 var result = context.getResult(raw_material);

策略模式与简单工厂联用

往上下文的实现类中传入策略类型名称,实现对应策略的选择(工厂模式的体现)。

String type = "type_name";
Context context = new Context(type);
var result = context.getResult(raw_material);

第三章 单一职责

就一个类而言,应该仅有一个引起它变化的原因。
一个类承担的职责过多,等于把这些职责都耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。

第四章 开闭原则

对于扩展是***开放*** 的,对更改是***封闭***的。
从而应对需求的变更却又保持相对稳定,从而便于系统迭代升级。

  • 在设计需求的时候需要尽可能考虑到所有变化
  • 无法封闭的变化,需要抽象隔离,从而避免修改

使用以上的方法,面对需求的修改通过增加新的代码,而不是改变现有的代码。
但是要避免对每一个部分都刻意进行抽象,不必要的抽象都是冗余浪费。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值