设计模式引言

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

设计模式--可复用面向对象软件的基础主讲人:吴刚面向对象编程(OOP:ObjectOrientedProgramming)可扩展可维护封装重用抽象多态继承OOP。。。。。OO编程原则1.开闭原则(Open-ClosedPrinciple)模块在开放性方面应该是开放的(易于扩展),在更改性方面应该是封闭的(易于修改而不需要更改类的源代码)。2.Liskov替换法则(LiskovSubstitutionPrinciple)任何基类可以出现的地方,子类一定可以出现。LSP是继承复用的基石,只有当衍生类可以替换掉基类,软件单位的功能不受到影响时,基类才能真正被复用OO编程原则3.针对接口编程组件之间应该尽可能使用接口进行通讯,具体的业务逻辑由子类去实现不变的接口。4.将可变的部分和不可变的部分分离任何时候都将不变的接口与可变的实现分离。如果使用继承的复用技术,我们可以在抽象基类或接口中定义好不可变的部分,而由其子类去具体实现可变的部分。如果使用对象组合,我们可以定义好不可变的部分,而可变的部分可以由不同的组件运行时动态配置。OO编程原则5.优先使用对象组合,而不是类继承优先使用黑箱复用(对象组合)而不是白箱复用(类继承)。利用对象组合我们可以在运行时动态配置组件的功能,并防止类层次规模的爆炸性增长。6.高内聚,低耦合很简单的一句话却是软件设计的精华所在:一个模块包含的功能彼此相关,相互依赖,而与外界很少关联,并且没有承担过多的责任,这样的模块(子系统或者类)称之为高内聚的(HighCohesion)。如果一个模块为实现自身的功能,并不需要了解或者依赖太多外部的知识,则该模块是低耦合的(LowCoupling)。OOP菜鸟成鹰之路前人铺路,后人乘凉。--使用已验证的好设计方案设计模式概述设计模式概述设计模式概述每一个设计模式描述一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次一次地使用该方案而不必做重复劳动。-ChristopherAlexander(克里斯托弗·亚历山大)软件领域的设计模式起源于建筑学。设计模式概述1977年,建筑大师Alexander出版了《APatternLanguage:Towns,Building,Construction》一书。受Alexander著作的影响,KentBeck和WardCunningham在1987年举行的一次面向对象的会议上发表了论文:《在面向对象编程中使用模式》。GOF(“四人帮”)之书目前,被公认在设计模式领域最具影响力的著作是ErichGamma、RichardHelm、RalphJohnson和JohnVlissides在1994年合作出版的著作:《DesignPatterns:ElementsofReusableObject-OrientedSoftware》(中译本《设计模式:可复用的面向对象软件的基本原理》或《设计模式》),该书被广大喜爱者昵称为GOF(GangofFour)之书,被认为是学习设计模式的必读著作,GOF之书已经被公认为是设计模式领域的奠基之作。设计模式概述设计模式在一定的抽象层次上讨论模式,是对被用来在特定场景下解决一般设计问题的类和相互通信的对象的描述学习设计模式不仅可以使我们使用好这些成功的模式,更重要的是可以使我们更加深刻地理解面向对象的设计思想,非常有利于我们更好地使用面向对象语言解决设计中的问题。设计模式的要素模式名称(patternname)问题(problem)解决方案(solution)效果(consequences)设计模式的要素将以上四个要素细化,通常一个设计模式可以用以下内容进行表述:模式名、意图、别名、动机、适用性、结构、参与者、协作、效果、实现、代码示例、已知应用、相关模式设计模式的三种类型创建型(FactoryMethod)创建型对象模式包括抽象工厂(AbstractFactory)、建造(Builder)、原型(Prototype)、单例(Singleton)四种模式。设计模式的三种类型结构型(Adapter)结构型的对象模式则描述了对象的组装方式,如适配器(Adapter)对象模式、桥接(Bridge)模式、组合(Composite)模式、装饰(Decorator)模式、外观(Facade)模式、享元(Flyweight)模式、代理(Proxy)模式等。设计模式的三种类型行为型(Interpretation,TemplateMethod)行为型的对象模式使用对象复合方法而不是继承,它描述一组对象怎样协作完成单个对象所无法完成的任务,如职责链(ChainofReponsibility)模式、命令(Command)模式、迭代器(Iterator)模式、中介者(Mediator)模式、备忘录(Memento)模式、观察者(Observer)模式、状态(State)模式、策略(Strategy)模式、访问者(Visitor)模式等。设计模式基础--UMLUML类图在UML中,使用一个长方形描述一个类的主要构成,将长方形垂直地分为三层。第1层是名字层,类名字是常规字形,表明该类是具体类,类名字是斜体字形,表明该类是抽象类。第2层是变量层,也称属性层,列出类的成员变量及类型,格式是“变量名字:类型”。第3层是方法层,也称操作层,列出类的方法及返回类型,格式是“方法名字(参数列表):类型”。UML类图—类Student+name:String#age:int-money:double+setName(String):void#printMess():void+getAge():intsetAge(int):void-getMoney();名字层变量层方法层+#-~protected的private的package的public的变量或方法的访问权限是名字前加设计模式基础--UML类图名称缩写形式含义Public+可从所有其他类型访问。Private-只能由此类型的内部定义访问。Package~只能在包含此类型的包以及显式导入此类型的所有包中访问。Protected#只能由此类型以及从其继承的类型访问。设计模式基础--UMLUML类图—接口表示接口的UML图和表示类的UML图类似,使用一个长方形描述一个接口的主要构成,将长方形垂直地分为三层。第1层是名字层,接口的名字必须是斜体字形,而且需要用interface修饰名字,并且该修饰和名字分列在2行。第2层是常量层,列出接口中的常量及类型,格式是“常量名字:类型”。第3层是方法层,也称操作层,列出接口中的方法及返回类型,格式是“方法名字(参数列表):类型”。UML类图—接口interfaceCreator+MAX:int+factoryMethod():Product名字层常量层方法层+public的常量或方法的访问权限是名字前加设计模式的使用1.正确使用2.避免教条3.模式挖掘4.避免乱用5.了解反模式小结面向对象编程的原则设计模式的起源、要素及分类与设计模式相关的UML类图设计模式的意义及使用课后练习(二选一)以下两题任选一,遵循面向对象编程的原则完成(1)设计一个计算器程序,能完成加减乘除四则运算功能(2)设计数字输出程序,要求能根据输入情况,输出100以内偶数、奇数

1 / 31
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功