复合模式-《Head First设计模式》笔记终篇

本文探讨了MVC模式的组成及其内在设计模式的应用,包括观察者、策略和组合模式等,并介绍了设计模式的基本概念及分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文包含复合模式以及之后模式的要点。复合模式主要就是关于MVC这种复合模式,书中的实例不便于实现,之后准备找份资料仔细学习一下。

本书也到了结尾,以前没看过类似的知识,一直以为是特别高大上的东西,但是经过本书的入门讲解一下就明朗了很多。但是这些还不够,我还要继续学习设计模式,也计划之后在Android源码中去学习和探究设计模式的应用场景和使用技巧。加油↖(^ω^)↗!

1-MVC的组成

M:model模型,持有所有的数据、状态和程序逻辑。提供了操作和解锁状态的接口,并发送状态改变给观察者。
V:View视图,从模型中获取需要显示的状态和数据。
C:Control控制层,获取用户输入,并且解读其对model的意思。

  • 用户和视图交互,视图会告诉控制器你在做什么。
  • 控制器会解读行为,并告知模型层做一定处理。
  • 控制层也会要求View改变(比如点击按钮后,控制层会返回结果,使得某些View的控件发生改变)
  • model内部状态改变会通知View
  • View也会向model查询状态

2-MVC的内在设计模式


  • Model让View和Control可以随状态改变而更新,是使用观察者模式

观察者模式让Model彻底和View和Control互相独立。对Model状态改变有需求的View可以注册成为观察者。

  • View和Control实现了策略模式:Ctrl是View的行为,如果要不同行为,可以换掉C层。
    View可以被调整使用不同策略,策略模式让View和model层解耦。View毫不关心工作是如何完成的。
  • View内部用组合模式来管理窗口、按钮以及其他显示组件。
    每个显示的组件,要么是组合节点,要么是叶子节点。Ctrl通知View进行视图更新时,只需要告诉View层最顶层的组件即可,组合会处理其余的事情。

3-模式-的定义?

模式是在某情境(context)中,针对某些问题的某种解决方案。

模式的类目:第一本书GOF中列举了类目。

模式的分类:创建型、结构型、行为型。另一种按照模式处理的是类还是对象,分为:类型、对象型。

4-本书所有模式和描述配对

模式描述
装饰者包装一个对象,以提供一个新的行为
模板方法由子类决定如何实现一个算法中的步骤
抽象工厂允许客户创建对象的家族,而无需指定他们的具体类
单件确保有且只有一个对象被创建
策略封装可以互换的行为,并使用委托来决定要使用哪一个
组合客户用一致的方法来处理对象集合和单个对象
状态封装了基于状态的行为,并使用委托在行为之间切换
迭代器在对象的集合中游走,而不暴露集合的实现
外观简化一群类的接口
装饰者包装一个对象,以提供新的行为
工厂方法由子类决定要创建的具体类是哪一个
观察者让对象能在状态改变时被通知
代理包装对象,以控制对该对象的访问
适配器包装一个对象,并给该对象提供一个不同的接口
命令将请求封装成对象

5-书籍

GOF-始祖书籍

《Head First 设计模式》完结撒花!~!~!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值