软件构造学习笔记(10)--通过设计模式提高软件的可复用性和可维护性

设计模式概述

  • 目的:提供通用的、可复用的解决方案,以应对软件设计中常见的问题。
  • 好处:增加灵活性、减少引入新问题、允许在初始交付后增加更多功能。
  • 定义:设计模式是针对特定上下文中反复出现的问题的通用解决方案。

设计模式分类

  • 创建型模式(Creational patterns):关注对象的创建过程。
  • 结构型模式(Structural patterns):处理类或对象的组合。
  • 行为型模式(Behavioral patterns):描述类或对象的交互方式和责任分配。

创建型模式(Creational patterns)

  • 工厂方法模式(Factory Method pattern):定义创建对象的接口,让子类决定实例化哪个类。
    • 优点:消除了将应用程序特定类绑定到代码的需要。
    • 缺点:客户端可能需要创建创建者的子类以创建特定的具体产品。

结构型模式(Structural patterns)

  • 适配器模式(Adapter Pattern):将一个类的接口转换成客户端期望的另一种接口。
  • 装饰器模式(Decorator Pattern):动态地给一个对象添加额外的职责。
    • 优点:比静态继承更灵活,可以定制、内聚的扩展。

行为型模式(Behavioral patterns)

  • 策略模式(Strategy Pattern):允许在运行时选择算法家族中的一个算法。
  • 模板方法模式(Template Method):定义算法的框架,允许子类提供具体行为。
  • 迭代器模式(Iterator Pattern):顺序访问对象的元素,不暴露其底层表示。
  • 访问者模式(Visitor Pattern):将算法与对象结构分离,通过将方法层次移动到一个对象中。

设计模式的实例

  • 工厂方法模式:通过工厂类创建日志记录器的不同实现。
  • 适配器模式:适配旧组件以适应新的接口需求。
  • 装饰器模式:为栈数据结构添加撤销、安全、同步等特性。
  • 策略模式:在购物车中根据需要动态选择支付策略。
  • 模板方法模式:在订单处理中定义共性步骤,子类实现差异步骤。
  • 迭代器模式:为不同类型的集合提供统一的遍历方式。
  • 访问者模式:对购物车中的商品应用不同的操作,如计算价格。

设计模式的共性和差异

  • 所有模式都使用某种形式的“委托”(delegation)来实现灵活性和扩展性。
  • 模式之间的区别在于它们委托的对象和目的不同。

总结

设计模式是软件工程中的关键工具,它们帮助开发者构建更灵活、可维护和可扩展的系统。每种模式都针对特定的设计问题提供了解决方案,同时遵循开闭原则(OCP),即对扩展开放,对修改封闭。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值