设计模式入门 观察者模式 装饰者模式
1.设计模式入门
OO:Object Oriented
面向对象基础
- 抽象
- 封装
- 继承
- 多态
设计原则
- 把会变化的部分取出并“封装”起来,好让其他部分不会受到影响。
- 针对接口编程,而不是针对实现编程 真正意思是“针对超类型(supertype)”编程,超类型通常是一个抽象类或者是一个接口。用到的是多态的特性
- 多用组合,少用继承 将几个类结合起来使用就是组合。组合是一种“有一个”的关系,继承是一种“是一个”关系。
策略模式(strategy)
- 策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
例子:书中的让鸭子飞;工作中,用tableview展示多种样式的cell,自己定义的数据模型,用block对应tableview常用的响应方法,减少判断。 可用来减少代码中的大量重复的if/else或者switch判断,特别是条件相同,判断多处要使用。
个人理解:就是将不同类中的相同的方法实现提取出来,通过接口或者抽象雷翔管理。
2.观察者模式 (observer)
定义:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。
松耦合:当两个对象之间松耦合,它们依然可以交互,但是不太清楚彼此的细节。
设计原则
为了交互对象之间的松耦合设计而努力。 松耦合的设计之所以能让我们建立有弹性的OO系统,能够应对变化,是因为对象之间的互相依赖降到了最低。
案例
OC中的通知与KVO,书中写到观察者模式的代表人物——MVC ?
3.装饰者模式 (decorator)
定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更优弹性的替代方案。
设计原则
对扩展开放,对修改关闭。
为设计注入弹性,装饰者模式可以让我们扩展行为。 装饰者模式意味着一群装饰者类,这些类用来包装具体组件。 装饰者类反映出被装饰的组件类型。 装饰者可以在被装饰者的行为前面与/或后面加上自己的行为,甚至将被装饰者的行为取代掉,而达到特定的目的。 可以用无数装饰者包装一个组件;装饰者会导致设计中出现许多小对象,如果过度使用,会让程序变得复杂。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论