设计模式对系统设计与实现的影响-(2)

合集下载

设计模式的优缺点

设计模式的优缺点

设计模式的优缺点设计模式是一种被广泛应用于软件设计领域的解决问题的思维方式,它包括了一系列的解决方案,帮助开发人员快速地解决一些常见的软件设计问题。

然而,在使用设计模式时,我们也需要认清它的优点和缺点。

优点1. 可维护性提高设计模式将软件拆分成多个独立的组件,这些组件之间具有低耦合性和高内聚性,这使得维护变得更加容易。

在软件需求发生变化时,只需要修改一个组件而不影响其他组件,同时也使得代码重用变得更加容易,大大提高了软件的可维护性。

2. 可扩展性提高当软件需求发生变化,我们可以很方便地往软件中加入新的组件,修改现有的组件,使得软件的功能得到扩展。

设计模式将组件之间的关系更加清晰,使得扩展变得更加容易。

3. 代码重用性提高设计模式将模块划分为不同的组件,每个组件都有自己的职责和功能,这使得组件可以在不同的软件中进行复用,避免了代码重复的情况出现,提高了软件的编写效率。

4. 提高代码可读性设计模式的使用有助于提高代码的可读性。

由于每个组件职责单一而明确,所以代码的逻辑结构变得更加清晰,使得代码更加易于维护和理解。

5. 软件质量提高通过设计模式,软件稳定性更高、可靠性更强,避免了出现一些常见的错误,同时,设计模式的使用也使得软件的架构更加合理,功能更加完善,从而提高了软件的质量。

缺点1. 学习和使用门槛较高设计模式是一种高级的软件设计思维方式,学习和使用门槛较高,需要有一定的编程经验和对软件设计的理解。

同时,在实际使用中,需要将其应用到实际场景中,设计合理的组件结构,这也需要一定的技术经验和实践经验。

2. 可能会影响软件性能设计模式在增加软件的灵活性和可扩展性的同时,可能也会增加代码的复杂性,导致软件性能的下降。

因此,在使用设计模式时,需要在可维护性和性能之间做出平衡,根据实际情况选择合适的方案。

3. 可能会导致过度工程化由于设计模式有助于提高软件可维护性、可扩展性和代码可读性,因此在使用过度的情况下,可能会导致代码变得过于复杂和冗长,增加开发人员的工作量,同时也可能会对软件的开发周期和成本造成影响。

论述系统设计的影响及意义

论述系统设计的影响及意义

论述系统设计的影响及意义
系统设计是指在解决问题或满足需求的过程中,对系统进行规划、组织和设计的过程。

它涉及到从整体架构到细节实现的各个方面,包括系统结构、模块划分、数据流程、接口设计等。

系统设计的影响及意义如下:
1.提高效率和性能:良好的系统设计可以优化资源利用、减少冗余操作,并提高系统运行效率和性能。

通过合理分配任务和资源,避免瓶颈和矛盾,可以提高系统的整体工作效率。

2.降低成本:通过精心设计系统,可以减少不必要的开销和资源浪费。

合理利用现有资源,避免重复投入,降低开发、运营和维护成本。

3.提高可靠性和稳定性:系统设计考虑了各种可能出现的情况,并采取相应的措施来确保系统的稳定性和可靠性。

通过容错机制、备份策略等手段,降低故障风险并提供持久可靠的服务。

4.支持扩展和升级:一个良好设计的系统具有良好的灵活性和可扩展性,可以方便地进行功能扩展和升级。

通过模块化设计、接口规范等,可以降低对现有系统的影响,并快速适应新的需求和技术变革。

5.提高用户体验:系统设计关注用户需求和使用体验,通过合理的界面设计、交互流程优化等方式,提供友好、直观的用户界面,增强用户满意度和使用效果。

6.促进团队协作与沟通:系统设计是一个涉及多个角色和环节的过程,需要不同专业背景的人员进行协作。

通过系统设计过程中的讨论、沟通和协作,促进团队成员之间的相互理解与合作,提高项目质量。

综上所述,系统设计在软件开发、工程建设等领域具有重要意义。

它能够确保系统按照既定目标进行规划和实施,并达到高效、可靠、易用等方面的要求。

良好的系统设计不仅能够满足当前需求,还能为未来发展提供支持和保障。

设计模式在软件开发中的应用与实践

设计模式在软件开发中的应用与实践

设计模式在软件开发中的应用与实践设计模式是指在软件开发过程中,经过总结和归纳得到的一系列可重复使用的解决问题的方案。

它们旨在提高软件系统的可复用性、灵活性和可维护性。

设计模式的应用可以帮助开发者更高效地解决问题,并提升软件系统的质量。

本文将探讨设计模式在软件开发中的应用与实践。

一、单例模式单例模式是一种创建型设计模式,它保证一个类只有一个实例,并提供全局访问点。

在软件开发中,单例模式经常用于需要全局共享资源的情况。

比如数据库连接池、线程池等场景下,使用单例模式可以避免资源的重复创建,提高系统的性能。

二、工厂模式工厂模式是一种创建型设计模式,它提供了一种创建对象的接口,但具体的对象创建逻辑由工厂类来实现。

在软件开发中,工厂模式常用于需要根据不同的条件创建不同对象的情况。

比如在一个电商系统中,根据用户的选择创建不同类型的商品对象,可以使用工厂模式来实现。

三、观察者模式观察者模式是一种行为型设计模式,它定义了一种一对多的依赖关系,使得多个观察者对象同时监听某一个主题对象。

一旦主题对象发生变化,它的所有依赖者(观察者)都会收到通知并自动更新。

在软件开发中,观察者模式常用于需要实时更新数据的场景。

比如在一个天气预报应用中,多个观察者对象可以同时监听天气主题对象,一旦天气发生变化,观察者们就会收到通知并展示最新的天气情况。

四、适配器模式适配器模式是一种结构型设计模式,它允许不兼容的接口之间进行协同工作。

适配器模式通过创建一个新的适配器类,将一种接口转换为另一种接口,使得不同接口的类能够一起工作。

在软件开发中,适配器模式常用于将旧的接口适配为新的接口。

比如在一个日志系统中,将不同格式的日志信息适配为统一的日志接口,便于系统的使用和维护。

五、装饰器模式装饰器模式是一种结构型设计模式,它允许在不改变原有对象结构的情况下,动态地扩展其功能。

装饰器模式通过创建一个装饰器类,将原有对象进行包装,并在不改变原有对象的基础上增加新的功能。

《设计模式》读后感

《设计模式》读后感

《设计模式》读后感
《设计模式》是一本经典的计算机科学书籍,被誉为软件开发领域的“圣经”。

在阅读完这本书后,我深深感受到了设计模式的重要性和价值,同时也对自己的编程能力有了更深的认识和理解。

首先,设计模式作为一种通用的解决方案,可以帮助我们更好地理解和应用面
向对象编程的原则。

通过学习各种设计模式,我们可以更加灵活地设计和实现软件系统,提高代码的可维护性和可扩展性。

例如,单例模式可以确保一个类只有一个实例,保证全局唯一性;观察者模式可以实现对象之间的解耦,提高系统的灵活性。

其次,设计模式也是一种思维方式和编程习惯的培养。

在实践中,我们往往会
遇到各种各样的问题和挑战,而设计模式可以帮助我们更好地理清问题的本质,找到合适的解决方案。

通过不断地应用设计模式,我们可以提高自己的编程水平和思维能力,更好地应对复杂的软件开发任务。

另外,设计模式还可以帮助我们更好地与他人合作,提高团队的协作效率和代
码质量。

在团队开发中,大家都遵循相同的设计模式和编程规范,可以更加容易地理解和维护彼此的代码。

设计模式的统一性和规范性可以有效地减少代码冲突和bug,提高团队的整体效率和质量。

总的来说,阅读《设计模式》这本书给我带来了很多启发和收获。

通过学习和
应用设计模式,我不仅提高了自己的编程技能,还培养了解决问题的思维方式和团队合作的意识。

我相信,在今后的软件开发工作中,设计模式将会成为我不可或缺的利器,帮助我更好地应对各种挑战和机遇。

设计模式不仅是一种技术,更是一种智慧和经验的积累,让我们一起努力,不断学习和提高,创造更加优秀的软件作品。

设计模式在面向对象系统设计中的应用

设计模式在面向对象系统设计中的应用
s s m e in i v r e e s r n se t l b c u e o e h  ̄ rr u a i t n c lb l y o h y t m, ih rl v lo y t d sg s e y n c s a y a d e s n i , e a s ft e e e s b l y a d s aa i t ft e s se h g e e e f e a h i i
vlal,h s iiwd l ue ot fh f aed vlp n m d1U igd s npt rsi ojc- r ne ow r a be tu,ts i y sdi m s o es t r ee met o e s ei at n beto etdsf ae u e n t ow o . n g e n i t
d vlp n fce c ,a o- a iga dS n e eo me te iin y lb r s vn n Oo .
Ke r s O jc- r ne D s nP trs r— n i e n sf a ue ywod : betO et i d; ei ae ;e egn r g;ot r r s g t n ei w ee

从 面向对象方法 的思想 和作用 的角度 ,再加之 参考语 言 角度 分类 ,层 层递进 ,面向对象 的方 法可 以分为 3类 。抽象 和封装 ,它 包含抽 象和 接 口、接 口与实现 的分 离两 层意 思 ,
两层意思都 是基于封装 的。前者描 述和表 达 了概念 ,后者 实 现了描述现 实逻辑和 描述概念逻辑 的分离 。继承 和功能 的覆
括 为软件 的复用 。软件模 块的复用可 以使得 编写 的逻辑模块 在 实现 一次 的情况下 ,到处可 用 ,逐渐 发展 为组 件化 编程 ; 软 件可修改性 使得原有 的程序和代码 可 以不因用户 需求 的改

设计模式概论

设计模式概论

设计模式概论设计模式概论1. 设计模式设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。

使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大厦的一块块砖石一样。

模式的经典定义:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心,通过这种方式,我们可以无数次地重用那些已有的解决方案,无需再重复相同的工作。

即模式是在特定环境中解决问题的一种方案2. 设计模式目的其目的就是一方面教你如何利用真实可靠的设计来组织代码的模板。

简单地说,就是从前辈们在程序设计过程中总结、抽象出来的通用优秀经验。

主要目的一方面是为了增加程序的灵活性、可重用性。

另一方面也有助于程序设计的标准化和提高系统开发进度。

也有人忠告:不要过于注重程序的“设计模式”。

有时候,写一个简单的算法,要比引入某种模式更容易。

在多数情况下,程序代码应是简单易懂,甚至清洁工也能看懂。

不过呢在大项目或者框架中,没有设计模式来组织代码,别人是不易理解的。

一个软件设计模型也仅仅只是一个引导。

它必须根据程序设计语言和你的应用程序的特点和要求而特别的设计。

3. 设计模式历史设计模式”这个术语最初被设计用于建筑学领域。

Christopher Alexander 在他1977的著作“A Pattern Language :Towns/Building/Construction”里面描述了一些常见的建筑学设计问题,并解释了如何用这些已有的,著名的模式集合来开始全新的有效的设计。

Alexander的观点被很好的转化到软件开发上来,并且长期的合意的用原有的组件来构造新的解决方案。

4. 设计模式的四个基本要素设计模式使人们可以更加简单方便地复用成功的设计和体系结构。

设计模式的实际应用

设计模式的实际应用

设计模式的实际应用
1 设计模式
设计模式是对对象创建和实现目标问题的一种反复使用的通用解
决方案。

设计模式是旨在提高软件质量和开发效率的一种有力工具。

它们有助于维护复杂系统,改善代码可读性,降低维护成本以及简化
程序设计。

2 使用设计模式的好处
使用设计模式的最大好处是可以减少程序的重复工作和提高维护
性能。

不同的设计模式有不同的优点,包括提高可读性,提高重用代
码的可行性,降低许多冗余的代码以及更紧凑的实现方式等。

此外,
使用设计模式还可以使大型项目更容易管理,并有助于将复杂问题简
化为更简单的问题,从而更容易了解和解决。

3 实际应用
设计模式经常用于软件开发中,可以帮助开发者实现特定的功能,而不需要花费大量时间和金钱来实现。

典型的设计模式如单例,工厂,策略和代理等经常被应用于大多数大型项目中,以降低开发时间并提
高项目的质量。

注册表模式,可以用于配置文件的读取和存储,方便
程序的读取,并且可以将程序中的数据存储在独立的缓存中,以提高
性能。

此外,设计模式还可以用于深入了解和使用C ++模板。

通过以上,我们可以看到设计模式实际应用在软件开发中的重要性。

它不仅可以帮助软件开发者快速实现某些功能,还可以改善代码的可读性,简化问题和维护复杂系统,从而大大提高开发效率。

论述设计模式的概念及作用

论述设计模式的概念及作用

论述设计模式的概念及作用设计模式是一种软件设计思想,它旨在解决在面向对象编程中经常遇到的一些设计问题。

设计模式是从实际的软件设计实践中总结出来的一些通用的设计经验,是对软件设计中一些常见问题的最佳解决方案。

设计模式由四个要素组成:模式名称、问题、解决方案、效果。

设计模式的概念可以追溯到20世纪80年代,当时,诸如Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides等人合作编写了一本名为《设计模式:可复用面向对象软件的艺术》的经典著作,正式将设计模式作为一种软件设计思想引入到软件开发领域中。

从此,设计模式逐渐成为了软件工程领域中的重要概念。

设计模式的作用主要体现在以下几个方面:1. 提高代码的重用性设计模式通过将一些通用的设计思想和解决方案进行抽象和总结,帮助程序员将这些思想和解决方案应用到实际的软件设计中。

这样,程序员不需要每次都从头开始设计解决方案,而是可以直接使用经过验证的设计模式,提高了代码的重用性。

2. 提高软件的可维护性使用设计模式可以使软件的设计结构更加清晰,降低软件模块的耦合度,增加代码的灵活性。

这样,在软件维护和修改过程中,可以更加容易地理解和修改代码,提高软件的可维护性。

3. 提高软件的扩展性设计模式可以帮助程序员设计出更加灵活和可扩展的软件系统,使得软件更容易进行功能的扩展和修改。

通过使用设计模式,可以使软件系统更容易应对未来的需求变化。

4. 增加软件的可靠性设计模式是经过多年实践验证的最佳实践,采用设计模式可以帮助程序员避免一些常见的设计错误,并且可以保证软件的质量。

通过使用设计模式,可以使软件更加可靠。

总的来说,设计模式是一种软件设计的最佳实践,它可以帮助程序员设计出更加清晰、灵活、可维护和可扩展的软件系统。

通过使用设计模式,可以提高软件的质量、可靠性和可维护性。

设计模式是软件工程领域中非常重要的概念,值得开发者们去深入学习和应用。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1引言从上世纪60年代末开始,由于计算机软件对生产力有巨大的推动作用,各种大型、复杂的软件系统相继被开发出来。

然而,随着软件系统规模的扩大和复杂性的增加,软件开发对人力、物力的需求越来越大,同时软件系统的可靠性和可维护性明显降低,软件行业出现了危机。

直到80年代,软件开发采用面向对象设计思想和开发技术,软件危机才在一定程度上得到缓解。

面向对象开发方法的核心思想是将系统看成是对象及对象之间的相互关系的集合,思维方式更接近人类认识世界的规律,克服了面向过程开发存在的诸多弊端。

但是采用面向对象的方法来开发软件也需要一些正确的开发原则来指导,否则,开发的软件将不可避免地带有某些缺陷,如系统过于僵硬,不能很好地适应需求变化;系统过于脆弱,往往修改一处代码会带来无法预测的后果;系统复用率低,黏度过高等等。

为了避免上述缺陷,设计出具备良好的可扩展性、可复用性、易维护性的系统,我们应在系统设计和实践阶段采用设计模式的思想。

设计模式是软件复用技术中的一个重要概念[1]。

它是指以文档的形式把面向对象的软件设计经验记录下来,并予以系统的命名、解释和评价,使不同的开发人员在进行不同系统的设计与开发时,可以使用别人的成功经验而不必为普通的、重复的问题重新设计解决方案,使设计者更容易理解其设计思路,能为自己的问题找到更适合的解决办法,更快更好地完成系统设计。

随着技术的不断完善,设计模式的种类日益增多,相对于GoF在1994年提出的23种通用设计模式,数量已大大增加。

选择适合自己系统的模式对系统的设计与实现都至关重要,当对各种模式有足够全面的了解时,许多设计决策就自然而然产生了。

为了研究设计模式是如何影响系统设计与实现的,应结合面向对象设计原则和软件工程思想来进行探讨[2]。

2 从设计原则到设计模式2.1 设计原则我们之所以提倡设计模式,就是为了代码复用,增强系统的可维护性。

面向对象有几个原则:开闭原则、里氏代换原则、依赖倒转原则、接口隔离原则、合成/聚合复用原则、最小知识原则、单一职责原则和抽象原则。

开闭原则具有理想主义色彩,它是面向对象设计的终极目标。

其他几条,则可以看做是开闭原则的实现方法。

设计模式就是实现了这些原则,从而达到了代码复用、增加可维护性的目的。

(1)开闭原则一个软件实体应当对扩展开放,对修改关闭。

开闭原则是面向对象设计中最基础的设计原则,它指导我们如何建立稳定灵活的系统。

我们在重构代码时尽量在不修改原来代码的情况下进行扩展。

这样在扩展的同时对旧版本有很好的支持,使得系统更加灵活,具有很强的适应性。

(2)里氏代换原则子类可以扩展父类的功能,但不能改变父类原有的功能。

父类中凡是已经实现好的方法(相对于抽象方法而言),实际上是在设定一系列的规范和契约,虽然它不强制要求所有的子类必须遵从这些契约,但是如果子类对这些非抽象方法任意修改,就会对整个继承体系造成破坏。

继承作为面向对象三大特性之一,在给程序设计带来巨大便利的同时,也带来了弊端。

比如使用继承会给程序带来侵入性,程序的可移植性降低,增加了对象间的耦合性,如果一个类被其他的类所继承,则当这个类需要修改时,必须考虑到所有的子类,并且父类修改后,所有涉及到子类的功能都有可能会产生故障。

在模块中应当尽量从抽象类中继承,而不是从具体的类中继承。

里氏替换是软件代码复用的重要基础。

(3)合成复用原则合成是值的聚合,聚合是引用的聚合。

合成和聚合都是关联的特殊种类,聚合表示整体和部分的关系,表示“拥有”;合成则是一种更强的“拥有”,部分和整体的生命周期是一样的,合成的新的对象完全支配其组成部分,包括他们的创建和湮灭。

一个合成关系的成分对象是不能与另一个合成关系共享的。

我们在开发中应尽量使用合成/聚合,而不是使用继承。

(4)依赖倒转原则依赖倒置原则的核心思想是面向接口编程。

要针对接口编程,不要针对实现编程;传递参数,或者在组合聚合关系中,尽量引用层次高的类。

高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖于细节,细节应该依赖于抽象。

程序在需要引用一个对象时,应当尽可能的使用抽象类型作为变量的静态方法,即面向接口编程,是达到开闭原则的途径。

针对接口编程和抽象类就是要做到一个具体的类应当只实现类的接口和抽象类中声明的方法,而没有多余的方法。

依赖倒置原则基于这样一个事实:相对于细节的多变性,抽象的东西要稳定得多。

以抽象为基础搭建起来的架构比以细节为基础搭建起来的架构要稳定得多。

使用接口或者抽象类的目的是制定好规范和契约,而不去涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成。

(5)接口隔离原则客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。

建立单一接口,不要建立庞大臃肿的接口,尽量细化接口,接口中的方法应尽量少。

我们要为各个类建立专用的接口,而不要试图去建立一个很庞大的接口供所有依赖它的类去调用。

在程序设计中,依赖几个专用的接口要比依赖一个综合的接口更灵活。

接口是设计时对外部设定的“契约”,通过分散定义多个接口,可以预防外来变更的扩散,提高系统的灵活性和可维护性。

在面向对象设计时恰当地划分角色和角色对应的接口是非常重要的。

将没有关系的接口合并在一起是对角色和接口的污染。

原则要求我们不同的角色要给不同的接口,而不能交给一个接口。

(6)抽象原则用抽象构建框架,用实现扩展细节。

因为抽象灵活性好,适应性广,只要抽象得合理,可以基本保持软件架构的稳定。

而软件中易变的细节,我们用从抽象派生的实现类来进行扩展,当软件需要发生变化时,我们只需要根据需求重新派生一个实现类来扩展就可以了。

当然前提是我们的抽象要合理,要对需求的变更有前瞻性和预见性。

抽象类不会有实例,一般作为父类被其他类继承,包含了子类的共同属性和方法。

具体类是不被其他类所继承的,即子类继承了抽象类后,这个子类不应再被其他类所继承。

(7)迪米特法则也称最少知识原则,一个对象应当对其他对象尽可能少地了解,让每个类专心做自己的事情而不去关心其他的事情,以降低耦合度。

(8)单一职责原则不要存在多于一个导致类变更的原因,即一个类只负责一项职责。

单一职责可以降低类的复杂度,其逻辑要比负责多项职责简单得多;提高类的可读性,提高系统的可维护性;变更是必然的,但是单一职责原则可以将变更引起的风险降低,当修改一个功能时,可以显著降低对其他功能的影响。

单一职责原则不只是面向对象编程思想所特有的,只要是模块化的程序设计,都适用单一职责原则。

2.2 设计模式设计模式是一些富有经验的面向对象技术专家针对特定问题而设计的成功解决方案,可作为通用原则和惯用法,用于指导软件设计。

将这些原则和惯用法以一种结构化的形式加以描述,给出问题和解决方案,然后形成一套模式,这就是设计模式[1]。

模式的一个主要目标就是以一种别人容易接受的方式,捕捉那些重复出现问题的解决方案。

毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,如同大厦的结构一样,设计模式是软件工程的基石脉络。

一般而言,一个模式有四个基本要素:模式名称、问题(描述应该在何时使用模式)、解决方案(描述设计的组成成分、它们之间的相互关系及各自的职责和协作方式)、效果(描述模式应用的效果及使用模式应权衡的问题)。

2.3 设计思想在计算机科学中,对设计模式的简单定义就是对于一类重复出现的问题的一种可重用的解决方案,在软件工程中一个设计模式往往能解决一类软件设计问题。

设计模式的使用帮助设计人员更加简单、方便地改进或复用以往成功的设计和体系结构,采用设计模式的软件系统具有更好的可维护性。

软件在不断进化,需求在不断改变,所以软件应该适应变化[3]。

设计模式是为了让软件更加适应变化,有更多的可复用性。

想要适应变化,就应该封装变化,让变化的影响最小;封装复杂性,提供简单的接口;针对接口编程,而不是针对实现编程;最大程度地继承、组合、委托、多态和参数化。

耦合是元素与其他元素的连接、感知及依赖的度量。

低耦合往往能够减少修改软件所需的时间、工作量和缺陷。

例如信息专家模式支持低耦合度,因为信息专家模式把职责分配给拥有完成职责所需信息的对象。

如果我们把职责分配给其他对象,则信息需要被这些对象共享,会增加耦合度。

内聚是对一个类中的各个职责之间相关程度和集中程度的度量[4]。

一个具有高度相关职责的类并且这个类所能完成的工作量不是特别巨大,那么它就具有高内聚度。

不要给一个类分派太多的职责,在履行职责时尽量将部分职责分派给有能力完成的其它类去完成。

不相关的职责不要分派给同一个类。

设计模式思想引入企业级数据库系统开发,于传统的开发模式可谓是一场革命。

设计模式之于面向对象的设计与开发的作用就有如数据结构之于面向过程开发的作用一般,其重要性不言而喻。

通常意义上的三层架构就是将整个业务应用划分为:表现层(UI)、业务逻辑层(BLL)、数据访问层(DAL)。

区分层次的目的即为了“高内聚,低耦合”的思想。

可复用面向对象软件系统现在一般划分为两大类:应用程序工具箱和框架,我们平时开发的具体软件都是应用程序,Java的API属于工具箱;而框架是构成一类特定软件可复用设计的一组相互协作的类,EJB是Java应用于企业计算的框架。

框架通常定义了应用体系的整体结构类和对象的关系等等设计参数,以便于具体应用实现者能集中精力于应用本身的特定细节。

框架主要记录软件应用中共同的设计决策,框架强调设计复用,因此框架设计中必然要使用设计模式。

另外,设计模式有助于对框架结构的理解,成熟的框架通常使用了多种设计模式,熟悉这些设计模式可帮助我们掌握EJB、J2EE等框架的结构。

3 GRASP职责分配模式与设计模式的应用价值GRASP 作为设计模式来描述对象设计和职责分配的基本原则。

GRASP原则是对其他设计模式的归纳。

为了使系统满足适应外部服务系统的可变接口,我们应用适配器模式,设计具有同一接口的Adapters;为了按系统的要求灵活选择所需的Adapter,我们应用工厂模式,设计一个Factory,按系统当前的要求实例化相应的Adapter;为了系统中同一类的Adapters实例具有唯一的创建逻辑,我们应用单实例类模式,使Factory在系统中仅有唯一的一个实例。

设计模式在以下几个方面体现了其应用价值:许多模式可以增强被包装类的复用能力;有效地处理需求变更,做到以不变应万变;大大减少各个分析类之间的耦合和依赖;是最有效的学习别人经验的方法,帮助我们更好地理解前人的知识精华,阅读优秀框架的源码,也使程序员之间的交互更为方便有效。

设计模式的出现是对项目开发中不断出现相同问题的解决方法的一个最佳总结。

它是项目维护升级时重要的基石。

如果我们把项目比作成盖房子的话,设计模式就是一个个方砖,可拆可加可扩可收,增强系统的稳健和可扩展性,大大降低了相同问题的维护量。

相关文档
最新文档