2022年面向对象设计原则和设计模式的应用[借 .pdf

上传人:Q****o 文档编号:28071301 上传时间:2022-07-26 格式:PDF 页数:3 大小:330.05KB
返回 下载 相关 举报
2022年面向对象设计原则和设计模式的应用[借 .pdf_第1页
第1页 / 共3页
2022年面向对象设计原则和设计模式的应用[借 .pdf_第2页
第2页 / 共3页
点击查看更多>>
资源描述

《2022年面向对象设计原则和设计模式的应用[借 .pdf》由会员分享,可在线阅读,更多相关《2022年面向对象设计原则和设计模式的应用[借 .pdf(3页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第28卷第1期2007年2月华 北 水 利 水 电 学 院 学 报Journal of North ChinaInstitute of W ater Conservancy and Hydr oelectric PowerVol128 No11Feb.2007收稿日期: 2006 - 06 - 10;修订日期: 2006 - 08 - 20基金项目:河南省科技攻关项目( 0524220064 ).作者简介:张 宇(1982 - ) ,男,河南许昌人,华北水利水电学院在读硕士研究生,主要从事面向对象技术方面的研究.文章编号: 1002 - 5634 ( 2007) 01 - 0063 - 03面

2、向对象设计原则和设计模式的应用张 宇,庄晋林(华北水利水电学院,河南 郑州450011 )摘 要:面向对象设计原则在基于面向对象方法开发软件系统的过程中起着重要的指导作用.它是各种设计模式背后的基本思想原则,遵守设计原则能提高软件的可维护性和可复用性.结合具有代表性的设计模式及应用实例,深入讨论了面向对象设计原则.关 键 词:面向对象;设计原则;设计模式中图分类号: TP132. 4文献标识码: A面向对象设计OOD(Object Oriented Design)有3个最基本的设计原则: 针对接口编程,而不是针对实现编程; 优先使用对象组合,而不是类继承;封装变化点 .在此基础上可以得出几条具

3、体的设计原则 :开放封闭原则OCP (Open - Close Princi2ple) ; Liskov替换原则LSP(L iskov Substitution Princi2ple) ;依赖倒置原则D IP(Dependency Invertion Prin2ciple);接口隔离原则ISP(Interface SeparatePrinci2ple) .采用这些设计原则可提高系统的可维护性和可复用性 .设计模式是软件开发过程中对重复出现问题的可重用性解决方案 1.1 开放封闭原则OCP1. 1OCP 的定义符合 OCP的模块需满足2个标准 : 可扩展 ,即“ 对扩展开放” . 模块的功能可以

4、被扩展,以满足新的需求 ; 不可更改 ,即“对更改封闭” . 模块的源代码是不允许进行改动的.开放封闭原则是OOD的真正核心 . 其他的原则是它的手段和工具,是附属的原则 .1. 2OCP 的特点和实现OCP具有可扩展和不可修改的特点.扩展开放可以使软件系统方便地添加新的功能;修改封闭使系统已有的模块、 特别是重要的抽象层模块不能被修改 .因此 ,遵守OCP的软件系统能适应不断变化的需求并保持稳定.要实现 OCP需要作到抽象化.一个软件系统要区分抽象层和实现层,用户只能看到抽象层. 用户通过抽象层的接口访问软件系统,该抽象层根据用户请求的具体内容决定使用系统中哪些具体的功能.当软件需要提供新的

5、功能,只需要在软件中增加新的模块 ,而客户端代码和抽象层不需要改变或者只需要作很小的改变.1 . 3OCP 在设计模式中的体现1 . 3. 1简单工厂模式简单工厂模式由一个工厂类根据传入的参量决定创建出哪一种产品类的实例,是类的创建模式,涉及工厂类 、 抽象产品类和具体产品类.例如一个绘图软件,能处理圆形和椭圆形2种几何图形 . 首先定义一个“ 抽象产品” Shape接口 ,这些几何图形类都实现这个接口. 再定义一个“工厂 类 ” ShapeCreat or,来 创 建 各 种“具 体 产品 ” 几何图形类的具体实例.系统如图1所示 .当客户端需要某个产品时,需向工厂类请求,然后工厂类自行判断

6、创建哪一个产品. 所以 ,客户端无需修改就可以接纳新的产品;抽象产品Shape接口由于处于抽象层因而十分稳定;工厂类必须知道每名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 3 页 - - - - - - - - - 一种产品如何创建,因而加入一个新的产品时必须修改其代码 .图1简单工厂模式实例1. 3. 2工厂方法模式定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中,工厂类不再负责所有产品的创建 . 因此 ,系统在加入新的产品时就不需要修改抽象工厂类和具体工厂

7、类,只需要增加与新加入产品相应的具体工厂类即可.将上述绘图软件的例子用工厂方法模式实现,如图2 所 示. 工 厂类ShapeCreat or抽象 出来作 为ShapeCreat or接口 ,具体的创建工作由实现这个接口的类去做 . 当系统扩充功能添加三角形图形时,只需添加实现Shape接口的三角形新类,同时相应地创建实现ShapeCreat or接口的三角形实现类. 因此工厂方法模式能够简单方便地实现软件系统功能扩充 ,并能保持系统的稳定.图2工厂方法模式实例2L iskov替换原则LSP2 . 1L SP的定义使用指向基类(超类 )的引用函数,必须能够在不知道具体派生类(子类 )对象类型的情

8、况下使用 2.换言之 ,如果用户使用一个基类,那么子类一定可以替代基类,用户不会察觉到基类对象和子类对象的区别 . 但是反过来不成立.LSP是继承复用的基石. 该原则和开放封闭原则关系密切,正是子类型的可替换性,才使得基类型模块无需修改就可扩充.2 . 2L SP在设计模式中的体现代理模式为其他对象提供一种代理以控制对这个对象的访问. 当客户不想或者不能直接引用一个对象时 ,代理对象在客户和被代理对象之间起中介作用 ,去掉客户不能看到的内容和服务或者增添客户需要的额外服务.以论坛为例,已注册的用户拥有发帖子的权限;而游客只有浏览帖子的权限. 首先实现一个抽象主题 Forum,其中定义了接口 发

9、帖子 . 真实主题和代理主题均实现该接口. 其中真实主题填入该接口方法的具体实现,而代理主题填入权限检查和传递调用真实主题的实现方法.系统结构如图3所示 .图3 代理模式实例3依赖倒置原则D IP抽象不 应 依 赖 于 细 节 , 细 节 应 该 依 赖 于 抽象 3.另一种表述是:要针对接口编程,不要针对实现编程 1 .依赖倒置是依赖于接口或者抽象函数和类而不是具体的函数和类.3 . 1D IP的特点和实现D IP的特点就是倒置.在结构化设计中,高层抽象模块依赖低层模块;抽象层依赖具体层.但在实际46华 北 水 利 水 电 学 院 学 报 2007年2月名师资料总结 - - -精品资料欢迎下

10、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 3 页 - - - - - - - - - 系统中 ,抽象层是相对稳定的,而低层代码却是经常变动的 . 为了保持系统的稳定,应该使低层模块依赖于高层模块 .因此结构化方法是不正确的,依赖倒置原则就是要把这种错误的依赖关系倒转过来,使具体实现类依赖于抽象类和接口 4 .3. 2D IP在设计模式中的体现以工厂方法模式为例,将创建一个类实例的过程封装起来,客户端只是得到了实例化的结果和实例的抽象类型.该设计模式把违反OCP和 D IP的问题封装在具体工厂类中,把问题

11、隔离在容易控制的范围内 .4 接口隔离原则ISP多个专门的接口优于单一的总接口 3. ISP是支持抽象化的可行技术. 如果没有这个原则,组件和类的复用率会很低且不灵活. 如果一个大的接口提供了对所有客户端的支持,则改变某个客户端的方法可能会对其他方法造成影响,因此系统的稳定性和灵活性就会很差. 比较好的技术就是依据ISP为每个客户端提供特殊的服务接口. 这些接口被提供服务的类多继承,当某客户的接口需要修改时,其他客户端的接口就不会被影响.在实际应用中,应对系统进行恰当的设计,把客户端按类别划分为若干类,然后对每个类创建自己的特殊接口,这样就避免了系统的臃肿和混乱.ISP 在设计模式中的体现:适

12、配器模式是把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作 5 . 适配器有类适配器和对象适配器 2种.以对象适配器为例:比如有个遥控器类,它具有开关接口 . 现有电视机和空调,分别有不同的开关接口. 应用模式后的系统结构如图4所示 .图4适配器模式实例5结 语面向对象设计原则是基于面向对象软件系统设计和开发的指导性原则. 笔者结合设计模式及其实例 ,讨论了4个具体的设计原则.通过上述的讨论可以深入地理解设计原则,从而能灵活运用它构建出灵活 、 健壮和可重用的软件系统.参 考 文 献 1 ER ICH GAMMA,R ICHARD HE

13、LM , RALPHJOHNSON,and others.设计模式:可复用面向对象软件的基础(英文版) M .北京:机械工业出版社, 2002. 2 BOB TARR. So me Object - oriented design principles E B /OL . 2004 - 02 - 16. http: / /www.research . umbc. edu/tarr/dp / s pr05 /cs446 . html. 3 ROBERT C MARTI N. Design Principles and Design Patterns EB /OL . 2000- 08 - 03

14、. http: / /www . objectmentor . co m. 4 陈海波,王申康.新编程序设计方法学M .杭州:浙江大学出版社, 2004. 5 阎宏. Java与模式M .北京:电子工业出版社, 2002.Appli cation of O bject 2 O r iented D esign Pr inciples and D esign Pattern sZHANG Yu, ZHUANG Jin2lin(North ChinaInstitute of W ater Conservancy and Hydroelectric Power, Zhengzhou 450011,

15、China )Abstract:The object2oriented design principle has importantleading functi on in development process of object2orienteds oftware sys2tems. It is the basic princip le of the various design pattern, it can prove the softwaresmaintainabilityand reusability obeying this p rinci2ple . Combining the representive design mode withexa mp les the objects oriented design princip les are discussed.Key words: object2oriented; design principles; design patterns56第28卷第1期张 宇等:面向对象设计原则和设计模式的应用名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 3 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 技术资料 > 技术总结

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁