本文包含复合模式以及之后模式的要点。复合模式主要就是关于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 设计模式》完结撒花!~!~!