某市场设计模式实践(ppt 65页).ppt_第1页
某市场设计模式实践(ppt 65页).ppt_第2页
某市场设计模式实践(ppt 65页).ppt_第3页
某市场设计模式实践(ppt 65页).ppt_第4页
某市场设计模式实践(ppt 65页).ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

设计模式、框架及其实践,张永吉,.,怎样成为一个象棋高手?,第一步,学习基本规则第二步,学习取胜的原理这时,你说你已经学会下棋了但是,你要想成为一个象棋高手,除了多下棋和善于总结经验以外,一个重要的途径就是看高手们的棋谱,学习、理解、记忆和应用高手们总结的布局和定式这里的布局和定式就相当于我们说的模式,有几百种。,.,怎样成为一个软件设计高手?,第一步,学习基本规则。例如,数据结构、各种算法、编程语言等。第二步,学习软件设计的原理和方法。例如,结构程序设计、模块化方法、面向对象的设计方法等。这时,你已经可以说学会软件设计了。但是,你要想成为一个软件设计的高手,除了多动手和自己善于总结经验以外,一个重要的途径就是看软件设计的高手们的软件,学习、理解、记忆和重复应用软件设计模式。这种模式很多,有几百种。,.,目标,了解面向对象设计的基本原则了解设计模式概念及常用的设计模式了解框架的概念及设计原则掌握设计模式的学习方法,.,内容,面向对象设计开发的基本原则设计模式概念、分类及常用设计模式框架概念及设计原则设计模式的运用实例油品计算框架基于Jexcel的简易报表开发框架Junit设计,.,面向对象设计原则,开闭原则针对接口编程原则高内聚-低耦合原则最少知识原则类的单一职责原则依赖倒置原则里氏代换原则,.,开闭原则,扩展系统的行为时,不需要修改以前的代码,而是扩展以前的代码针对修改关闭针对扩展开放提高代码的可维护性,.,针对接口编程原则,接口是高层的抽象接口可以隐藏实现的细节接口可以清晰指出对象的职责接口是实现软件pluggable的关键松散耦合增加重用的可能性,.,类的单一职责原则,一个类只做一件事一个类的职责仅仅有一个原因而发生改变例:如一个界面展示类夹杂业务逻辑代码或者数据数据库联接代码。,.,依赖倒置原则,抽象不应该依赖于具体具体应该依赖于抽象抽象依赖于具体,降低了重用的可能性,.,结构化编程,面向对象的架构,.,里氏代换原则,在所有引用基类的地方,都可以用此基类的子类替换,而不影响程序原来的功能违背里氏代换原则将给程序带来不稳定性,.,class鸟publicvoid飞();class鹦鹉publicvoid学话();,.,class鸵鸟:鸟publicvoid飞()throws(“鸵鸟不能飞”);/publicvoidplay(鸟d)d.飞();/此处换成鸵鸟将导致错误,.,目标,了解面向对象设计的基本原则了解设计模式概念及常用的设计模式了解框架的概念及设计原则掌握设计模式的学习方法,.,设计模式,为什么使用设计模式?什么是设计模式?如何描述一个设计模式?如何选择一个设计模式?设计模式的分类,.,为什么使用设计模式?,僵化性(Rigidity):设计难以改变。脆弱性(Fragility):设计易于遭到破坏。牢固性(Immobility):设计难以重用。粘滞性(Viscosity):难以做正确的事情。不必要的复杂性(NeedlessComplexity):过分设计。不必要的重复(NeedlessRepetition):过多的重复。晦涩性(Opacity):混乱的表达。,.,什么是设计模式?,面向对象设计经验的总结和理论化抽象描述了软件设计过程中经常碰到的问题及其解决方案核心。,.,如何描述一个设计模式?,意图别名动机适用性结构参与者,协作效果实现代码示例已知应用相关模式,.,如何选择一个设计模式?,了解每一个设计模式所解决的问题了解模式的静态结构了解模式的动态结构查看当前设计系统易变的部分,.,设计模式的分类,创建者模式有关对象创建的模式结构型模式描述对象构造和组成的方式行为模式描述一组对象交互的方式,.,创建者模式,简单工厂模式(SimpleFactory)工厂方法(FactoryMethod)抽象工厂(AbstractFactory)建造者模式(Builder)原型模式(Prototype)单例模式(Singleton),.,工厂模式,封装对象(产品)的构建过程,.,一般的对象创建方式,Noodlenoodle=newNoodle();Breadbread=newBread();Ricerice=newRice();,.,使用工厂创建对象,.,餐厅里供应的菜谱,.,简单工厂,简单工厂-手工作坊,个体户生产面包,米饭,面条所有的产品都有一个大师傅制作,.,简单工厂示例代码,.,调用者代码,.,工厂方法,工厂方法-规模扩大,更专业工厂和产品是平行的继承层次结构每一种产品都有专门的大师傅制作有面包师,面条师,米饭师,.,工厂方法类图,.,抽象工厂,产品线的生产方式提供西北系列饮食西北面包,西北面条,西北米饭提供东北系列饮食东北面包,东北面条,东北米饭,.,抽象工厂类图,.,更好的工厂实现方法,基于反射的实现方式采用xml或数据库保存类的配置信息Spring的Bean工厂,.,SpringBean工厂示例,.,工厂模式的总结,简单工厂模式不满足开闭原则工厂方法模式对增加新产品支持开闭原则抽象工厂对增加新的产品系列满足开闭原则,.,建造者模式,解决一个复杂对象的构造过程一碗兰州拉面由面条,汤,肉,香菜组成,.,原型模式,通过复制对象的方式来创建对象Java和.net均提供了对原型模式的直接支持,.,单例模式,publicfinalclassSpringBeanUtilprivatestaticSpringBeanUtilspringBeanUtil=null;privateSpringBeanUtil()publicstaticSpringBeanUtilgetInstanse()if(null=springBeanUtil)springBeanUtil=newSpringBeanUtil();returnspringBeanUtil;,.,结构模式,适配器模式(Adapter)桥接模式(Bridge)组合模式(Composite)装饰模式(Decorator)外观模式(Facade)代理模式(Proxy)亨元模式(Flyweight),.,适配器模式,把一个类的接口转变成客户希望的接口使原本接口不一致的类提供统一的调用接口,.,结构模式,适配器模式(Adapter)桥接模式(Bridge)组合模式(Composite)装饰模式(Decorator)外观模式(Facade)代理模式(Proxy)亨元模式(Flyweight),.,组合模式,.,装饰模式,适配器模式(Adapter)桥接模式(Bridge)组合模式(Composite)装饰模式(Decorator)外观模式(Facade)代理模式(Proxy)亨元模式(Flyweight),.,装饰模式的引入-较深层次的继承结构,.,装饰模式,代替深层的继承结构,.,示例代码,.,结构模式,适配器模式(Adapter)桥接模式(Bridge)组合模式(Composite)装饰模式(Decorator)外观模式(Facade)代理模式(Proxy)亨元模式(Flyweight),.,外观模式,外部与一个子系统的通信仅通过一个门面类进行。,市场部,销售部,财务部,经理办公室,系统集成部,客人,前台接待员,.,行为模式,职责链模式(ChainofReponsibility)命令模式(Command)解释器模式(Interpreter)迭代子模式(Iterator)调停者模式(Mediator)备忘录模式(Memento)观察者模式(Observer)状态模式(State)策略模式(Strategy)模板方法模式(TemplateMethod)参观者模式(Visitor),.,观察者模式,发布-订阅一个主题,多个观察者主题发生变化是,多个观察者被通知Java和.net都有默认实现,.,示例类图,.,示例代码,.,行为模式,职责链模式(ChainofReponsibility)命令模式(Command)解释器模式(Interpreter)迭代子模式(Iterator)调停者模式(Mediator)备忘录模式(Memento)观察者模式(Observer)状态模式(State)策略模式(Strategy)模板方法模式(TemplateMethod)观察者模式(Visitor),.,策略模式,针对一组算法,定义一个公共的接口,而将算法的不同实现方式封装到单独的类中,.,行为模式,职责链模式(ChainofReponsibility)命令模式(Command)解释器模式(Interpreter)迭代子模式(Iterator)调停者模式(Mediator)备忘录模式(Memento)观察者模式(Observer)状态模式(State)策略模式(Strategy)模板方法模式(TemplateMethod)观察者模式(Visitor),.,模板方法模式,在较高的抽象层次定义一组操作定义了抽象操作之间的执行关系,.,目标,了解面向对象设计的基本原则了解设计模式概念及常用的设计模式了解框架的概念及设计原则掌握设计模式的学习方法,.,什么是框架?,解决某一特定领域的问题由一组接口和类组成好莱坞原则:Dontcallus,wellcallyou冻点(FrozenSpots)热点(HotSpots)框架的重用性框架的可扩展性,.,一个优秀的框架式如何产生的,抽象(抽象很难一次实现)类的职责分配代码的重构重复以上步骤,.,目标,了解面向对象设计的基本原则了解设计模式概念及常用的设计模式了解框架的概念及设计原则掌握设计模式的学习方法,.,设计模式学习的基础,熟悉面向对象的基本概念(继承,封装,多态)熟悉面向对象的基本原则熟悉UML常用静态关系-泛化,组合,关联,.,设计模式学习的方法和原则,看成熟框架的开源代码,逆向工程实践-思考-实践-思考一个循环上升的过程原则了解设计模式能解决哪些问题不要为了模式而模式,.,Q&A,Anyquestion?,.

温馨提示

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

评论

0/150

提交评论