软件工程-1设计优化_第1页
软件工程-1设计优化_第2页
软件工程-1设计优化_第3页
软件工程-1设计优化_第4页
软件工程-1设计优化_第5页
免费预览已结束,剩余46页可下载查看

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第8章设计优

大连理工大学软件学 小即是YAGNI(YouAin'tGonnaNeedIt):这条原则的

大连理工大学软件学 设计的“味道 系统的改动重重。对代码重构,导致原有设计的破坏和。

大连理工大学软件学 设计的“味道导致修改无法保持一致。和粘贴的编码习惯

大连理工大学软件学 设计的优运行时的多态:多态性在结构上形成类的继承层重写(Override)的要求+Circle(center:Point,radius:+Circle(center:Point,radius:-outG:-inG:

-x:-x:-y:+Point(x:int=0,y:int=+distance(p:Point):+getX():+getY():+print():+moveto(dx:int,dy:int):

+isWithin(p:+isWithin(p:Point):+area():+print():+Frame(outg:S,ing:+show():1+Rectangle(lu:+Rectangle(lu:Point=Point(0,0),rd:Point=1

大连理工大学软件学 设计的优耦合的消息链:交互集中的设计与交互分散的设 pa:::pa:::

大连理工大学软件学 设计的优关

returnd.getLeft()==||d.getRight()==}//inGamereturn}//inDominoreturnleft==d.right||right==}

大连理工大学软件学 设计的优 的遗赠 新的功能会非常容易地在新类中进行重用,而依赖也不再强

大连理工大学软件学 设计的优BABA

大连理工大学软件学 设计的基本原证处理:发现变化,变化,以不变应

大连理工大学软件学 接 原 原则(TheInterfaceSegregationPrinciple,ISP)有两层含义:通过接口只将需要的操作“”给客户类,而将不需要的操作隐。接口在

大连理工大学软件学 ,使得Client不受变

}}+left():+right():+forward():+reverse():+climb():+setSpeed(speed:double):

大连理工大学软件学 驾驶相关的操作是不应该给这些维修者类。

大连理工大学软件学 面向接口的作连接不必硬绑定(hardwire)到一个具体

大连理工大学软件学 依赖倒置原BBABA

大连理工大学软件学 开放封闭原开放封闭原则(TheOpen-ClosedPrinciple,OCP):两个基本的特OCP是相对的,没有绝对符合OCP软件系统的所有模块不可能都满足OCOCP的模块数量。

大连理工大学软件学 +getPrice():-doubletotalPrice(Part[]part){doubletotal=0;for(intif(parts[i]instanceofMotherboard)total+=(1.45*parts[i].getPrice());elseif(parts[i]instanceofMemory)total+=(1.30*parts[i].getPrice());total+=}return}publicdoubletotalPrice(Part[]for(inttotal+=}return}

大连理工大学软件学 }total+=}}

大连理工大学软件学 Liskov替换原当子类型替换父类型后不能父类型中的前置条件和后置条件,即一个子类型不得具有比父类型的限制,这 大连理工大学软件学

对应代码单一职责原单一职责原则(SingleResponsibilityPrinciple,SRP)中?

大连理工大学软件学 +dial(pno+dial(pno:string):+hangup():+send(c:char):+receive():+dial(pno:string):+hangup()+dial(pno:string):+hangup():D+send(c:char):+receive():拆分,否则可以保留功能共存(装饰模式)。

大连理工大学软件学 合成/聚合复用原合成/聚合复用原则(Composite/AggregateReuse

大连理工大学软件学 ----frequent-frequentflyer---authorizationAgentAgent

多重继承中类型的确定是静态的,即人的已经确认,无法在运行时动态更改,而“乘客”的多重继承需要生成大量的底层类,以适应具有不同组合的人群,如同时具有学生、、乘客、实习者等的人。这些问题产生的原因就是实是两个耦合性很低的实体,我们把他们生拉硬套放在了一起,了事物

大连理工大学软件学 ------authorization--authorization-frequentflyer-

大连理工大学软件学 继承的使而非“是一个由父类所扮演的角色”。 的一个对象。

大连理工大学软件学 模模式是表示周(Context)、动机(SystemForces)、解决方案(Solutio)三个方面关系的一个规,每个模式描述了一个在某种周境下不断重发生的问,以及该问题解决方案的 所在。层次:架构模式(ArchitecturalPattern)、设计模式(DesignPattern)

大连理工大学软件学 模式的层架构模式是模式中的最-计模式——FactoryPattern,ObserverPattern等等。

大连理工大学软件学 设计模

大连理工大学软件学 范围类对象Chain

大连理工大学软件学 抽象工厂模

大连理工大学软件学

大连理工大学软件学 +getChessBoard():+getChessPiece():

+PackBox(cf:+computeVolume():

+getArea():

+getHeight():

-boolean:-type:

-color:

-boolean:

大连理工大学软件学 两种产品对象对于不同的棋类游戏(如中国象棋、跳棋或围棋等盘接口(ChessBoar)(ChessPiece)同时利用一个抽象的棋类工厂(Chessacoy)这个例子中通过工厂模式的使用可以使得添加新的棋(比如积木游戏)需要完全重建一套工厂类和产品体

大连理工大学软件学 单例模

使用主要是为了方便对相关的业务类进行管理和,因此通常它们在系统中只存在一个实例。类似本,比如银行系统中每个账户类的实例。并提供一个它的全局点。单例模式要求:(1)(2)提供一个公有的方法获取该类的实例;(3)类中实例变量为私有或受保护

大连理工大学软件学 适配器模

大连理工大学软件学 publicclassprivateTargetpublicClient(Target}publicvoid}publicstaticvoidmain(String[]Clientc=newClient(new}

publicclassAdapterimplementsTarget{privateAdapteeadaptee=null;publicadaptee=new}publicvoidreturn}}+Client(t+Client(t:

大连理工大学软件学

大连理工大学软件学 桥模//in//in

大连理工大学软件学 装饰模

//inoperation()//inoperation()//inoperation()

大连理工大学软件学 门面模门面模式提供了一个次的接口,使得子系统

大连理工大学软件学 称为“基于契约的设计(DesignbyContract)”。

大连理工大学软件学 不同的内部功能于一身,这是否了单不单一职责原则的精神。

大连理工大学软件学 模 它给这些资源对象提供一个对象,并由对象控制对资源对象的使用,起到

大连理工大学软件学 模式也可以并不知道真正的被对象,而仅仅持有一个被对象的接口,这时候对象不能够创建被对象,被对象必须有系

大连理工大学软件学 观察者模听某一个对象;当这个对象在状态上发生变化时,会式,其中的对象就相当于MVC中的模

大连理工大学软件学 ----for(Observerfor(ObserverobserverState=每个观察者对象为了得到对象的及时通知,需要事先在对象中进行订阅,并且在不需要的时候进每个具体的观察者需要实现自己的更新方法

大连理工大学软件学 策略模(Strategy)

大连理工大学软件学

}}}}

大连理工大学软件学 状态模状态模式(State)状态模式允许一个对象在其内部状态改变的时候改变状态模式的意图是让一个对象在其内部状态改变的时状态模式需要对每一个系统可能取得的状态创建一个

大连理工大学软件学 -location:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论