熬夜也要看完的设计模式可服用面向对象软件的基础,真的涨见识了,你值得拥

177 篇文章 0 订阅
9 篇文章 0 订阅

所有结构良好的面向对象软件体系结构中都包含了许多模式。实际上,当我评估一个面向对象系统的质量时,所使用的方法之一就是要判断系统的设计者是否强调了对象之间的公共协同关系。在系统开发阶段强调这种机制的优势在于,它能使所生成的系统体系结构更加精巧、简洁和易于理解,其程度远远超过了未使用模式的体系结构。

模式在构造复杂系统时的重要性早已在其他领域中被认可。特别地,ChristopherAlexander和他的同事们可能最先将模式语言( pattern language)应用于城市建筑领域,他的思想和其他人的贡献已经根植于面向对象软件界。简而言之,软件领域中的设计模式为开发人员提供了一种使用专家设计经验的有效途径。

本书包括两个主要部分,第一部分(第1章和第2章)介绍了什么是设计模式以及它如何帮助你设计面向对象的软件系统。该部分包含了一个设计案例研究,展示了如何将设计模式应用于实际工作。第二部分(第3、4、5章)则是实际设计模式的分类描述。模式的分类描述构成了本书的主要部分,书中的章节根据模式的性质将其划分为三种类型:创建型( creational),结构型(structural)和行为型( behavioral )。可以从多个角度使用这个模式分类描述,例如,你可以从头至尾地阅读每一个模式,也可以随机浏览其中的任何一个模式。另外-种方法是研究其中的一章,这将有助于理解原本密切关联的模式如何相互区分。

模式描述中的交叉引用将给你提供寻找其他相关模式的逻辑路径,它将帮助你看清楚模式是如何相互关联的、一个模式怎样与其他模式进行组合、以及哪些模式能在一起工作。图1-1将用图示方法展现这种关系。

阅读模式分类描述的另一种方法是问题导向法,你可以翻到书中的第1.6节查找有关设计可复用的面向对象系统过程中经常见到的问题,然后阅读解决这些问题的有关模式。有些读者首先通读模式分类描述,然后运用问题导向的方法将模式应用于他们的项目之中。

目录

京东T9架构师熬夜也要肝完的设计模式可复用面向对象软件的基础

 

京东T9架构师熬夜也要肝完的设计模式可复用面向对象软件的基础

1.1什么是设计模式

Christopher Alexander说过:“每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动”[AIS+77,第10页]。尽管Alexander所指的是城市和建筑模式,但他的思想也同样适用于面向对象设计模式,只是在面向对象的解决方案里,我们用对象和接口代替了墙壁和门窗。两类模式的核心都在于提供了相关问题的解决方案。

京东T9架构师熬夜也要肝完的设计模式可复用面向对象软件的基础

 

京东T9架构师熬夜也要肝完的设计模式可复用面向对象软件的基础

2.7.5 Command模式

Lexi的命令是Command(5.2)模式的应用。该模式描述了怎样封装请求,也描述了一致性的发送请求的接口,允许你配置客户端以处理不同请求。该接口保护了客户请求的实现。一个命令可以将所有或部分的请求实现委托给其他对象,也可不进行委托。这对于像Lexi这样必须为分散功能提供集中访问的应用来说,是相当完美的。该模式还讨论了基于基本的Command接口的撤销和重做机制。

京东T9架构师熬夜也要肝完的设计模式可复用面向对象软件的基础

3.5 SINGLETON(单件)——-对象创建型模式

1.意图

保证一个类仅有一个实例,并提供一个访问它的全局访问点。

2.动机

对一些类来说,只有一个实例是很重要的。虽然系统中可以有许多打印机,但却只应该有一个打印假脱机( printer spooler),只应该有一个文件系统和一个窗口管理器。一个数字滤波器只能有一个A/D转换器。一个会计系统只能专用于一个公司。我们怎么样才能保证一个类只有一个实例并且这个实例易于被访问呢?一个全局变量使得一个对象可以被访问,但它不能防止你实例化多个对象。一个更好的办法是,让类自身负责保存它的唯一实例。这个类可以保证没有其他实例可以被创建(通过截取创建新对象的请求),并且它可以提供一个访问该实例的方法。这就是Singleton模式。

京东T9架构师熬夜也要肝完的设计模式可复用面向对象软件的基础

4.1ADAPTER(适配器)——类对象结构型模式

1.意图

将-一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

2.别名

包装器Wrappero

3.动机

有时,为复用而设计的工具箱类不能够被复用的原因仅仅是因为它的接口与专业应用领域所需要的接口不匹配,

京东T9架构师熬夜也要肝完的设计模式可复用面向对象软件的基础

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值