设计模式入门 观察者模式 装饰者模式

发布于 2021-02-24 12:34:21 字数 1167 浏览 1221 评论 0

1.设计模式入门

OO:Object Oriented

面向对象基础

  • 抽象
  • 封装
  • 继承
  • 多态

设计原则

  • 把会变化的部分取出并“封装”起来,好让其他部分不会受到影响。
  • 针对接口编程,而不是针对实现编程 真正意思是“针对超类型(supertype)”编程,超类型通常是一个抽象类或者是一个接口。用到的是多态的特性
  • 多用组合,少用继承 将几个类结合起来使用就是组合。组合是一种“有一个”的关系,继承是一种“是一个”关系。

策略模式(strategy)

  • 策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。

例子:书中的让鸭子飞;工作中,用tableview展示多种样式的cell,自己定义的数据模型,用block对应tableview常用的响应方法,减少判断。 可用来减少代码中的大量重复的if/else或者switch判断,特别是条件相同,判断多处要使用。

个人理解:就是将不同类中的相同的方法实现提取出来,通过接口或者抽象雷翔管理。

2.观察者模式 (observer)

定义:定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会收到通知并自动更新。

松耦合:当两个对象之间松耦合,它们依然可以交互,但是不太清楚彼此的细节。

设计原则

为了交互对象之间的松耦合设计而努力。 松耦合的设计之所以能让我们建立有弹性的OO系统,能够应对变化,是因为对象之间的互相依赖降到了最低。

案例

OC中的通知与KVO,书中写到观察者模式的代表人物——MVC ?

3.装饰者模式 (decorator)

定义:动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更优弹性的替代方案。

设计原则

对扩展开放,对修改关闭。

为设计注入弹性,装饰者模式可以让我们扩展行为。 装饰者模式意味着一群装饰者类,这些类用来包装具体组件。 装饰者类反映出被装饰的组件类型。 装饰者可以在被装饰者的行为前面与/或后面加上自己的行为,甚至将被装饰者的行为取代掉,而达到特定的目的。 可以用无数装饰者包装一个组件;装饰者会导致设计中出现许多小对象,如果过度使用,会让程序变得复杂。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84960 人气
更多

推荐作者

lorenzathorton8

文章 0 评论 0

Zero

文章 0 评论 0

萧瑟寒风

文章 0 评论 0

mylayout

文章 0 评论 0

tkewei

文章 0 评论 0

17818769742

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文