×

Java 设计模式(14) —— 复合模式

96
磊_lei
2018.05.26 21:33 字数 555

一、复合模式

模式常一起使用,组合在一个设计解决方案中

复合模式在一个解决方案中结合两个或多个模式,能解决一般性或一系列的问题

复合模式

二、示例

本次设计模式讲解中无代码示例,由于复合模式是多个模式的组合,因此可以灵活运用前几篇文章中的设计模式思路

例如有一个复杂的鸭子项目:

  • 多种鸭子,不同鸭子叫声、飞行、游泳方式不同 —— 策略模式
  • 鹅,需要加入几只普通的鹅 —— 适配器模式
  • 要统计鸭子叫声的次数 —— 装饰者模式
  • 统一产生鸭子 —— 工厂模式
  • 要管理一群鸭子 —— 组合模式(迭代器)
  • 追踪某个鸭子的行为 —— 观察者模式

以上一个鸭子项目就可以结合之前文章中的多种模式完成需求,感兴趣的同学可以完成编码示例

三、MVC里的模式

我们熟知的MVC架构就是一个经典的复合模式

  • MVC:Model、View、Controler

    • Model:是程序主体,代表了业务数据和业务逻辑
    • View:是与用户交互的界面,显示数据、 接收输入,但不参与实际业务逻辑
    • Controler:接收用户输入,并解析反馈给 Model
  • MVC里的模式:

    • Model与View和Controler是观察者模式
    • View以组合模式管理控件
    • View与Controler是策略模式关系, Controler提供策略
  • Android开发中的复合模式

    • 整体结构上市MVC模式
    • 生命周期 —— 模板模式
    • 广播 —— 观察者模式
    • 列表View —— 模板

四、总结

在形式上,复合模式确实是多个模式的组合,但满足了这一条并不一定是复合模式,注意它的定义:将多个模式结合起来形成一个“框架”,以解决一般性问题


Java设计模式所有示例代码,持续更新中

日记本
Web note ad 1