某市场设计模式实践_第1页
某市场设计模式实践_第2页
某市场设计模式实践_第3页
某市场设计模式实践_第4页
某市场设计模式实践_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

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

文档简介

设计模式、框架及其实践张永吉.....第一页,共六十六页。怎样成为一个象棋高手?第一步,学习基本规则第二步,学习取胜的原理 这时,你说你已经学会下棋了

但是,你要想成为一个象棋高手,除了多下棋和善于总结经验以外,一个重要的途径就是看高手们的棋谱,学习、理解、记忆和应用高手们总结的布局和定式这里的布局和定式就相当于我们说的模式,有几百种。.....第二页,共六十六页。怎样成为一个软件设计高手?第一步,学习基本规则。例如,数据结构、各种算法、编程语言等。第二步,学习软件设计的原理和方法。例如,结构程序设计、模块化方法、面向对象的设计方法等。这时,你已经可以说学会软件设计了。但是,你要想成为一个软件设计的高手,除了多动手和自己善于总结经验以外,一个重要的途径就是看软件设计的高手们的软件,学习、理解、记忆和重复应用软件设计模式。这种模式很多,有几百种。.....第三页,共六十六页。目标了解面向对象设计的基本原则了解设计模式概念及常用的设计模式了解框架的概念及设计原则掌握设计模式的学习方法.....第四页,共六十六页。内容面向对象设计开发的基本原则设计模式概念、分类及常用设计模式框架概念及设计原则设计模式的运用实例油品计算框架基于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均提供了对原型模式的直接支持.....第三十八页,共六十六页。单例模式publicfinal

classSpringBeanUtil{privatestaticSpringBeanUtilspringBeanUtil=null;

privateSpringBeanUtil(){

}

publicstaticSpringBeanUtilgetInstanse(){ if(null==springBeanUtil){

springBeanUtil=newSpringBeanUtil(); }

return

springBeanUtil; }}.....第三十九页,共六十六页。结构模式适配器模式(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).....第五十六页,共六十六页。模板方法模式在较高的抽象层次定义一组操作定义了抽象操作之间的执行关系.....第五十七页,共六十六页。目标了解面向对象设计的基本原则了解设计模式概念及常用的设计模式了解框架的概念及设计原则掌握设计模式的学习方法.....第五十八页,共六十六页。什么是框架?解决某一特定领域的问题由一组接口和类组成好莱坞原则:Don’tcallus,we’llcallyou冻点(FrozenSpots)热点(HotSpots)框架的重用性框架的可扩展性.....第五十九页,共六十六页。一个优秀的框架式如何产生的抽象(抽象很难一次实现)类的职责分配代码的重构重复以上步骤.....第六十页,共六十六页。目标了解面向对象设计的基本原则了解设计模式概念及常用的设计模式了解框架的概念及设计原则掌握设计模式的学习方法.....第六十一页,共六十六页。设计模式学习的基础熟悉面向对象的基本概念(继承,封装,多态)熟悉面向对象的基本原则熟悉UML常用静态关系-泛化,组合,关联.....第六十二页,共六十六页。设计模式学习的方法和原则看成熟框架的开源代码,逆向工程实践->思考->实践->思考……一个循环上升的过程原则了解设计模式能解决哪些问题不要为了模式而模式.....第六十三页,共六十六页。Q&AAnyquestion?.....第六十四页,共六十六页。参考资料《设计模式-可复用面向对象软件的基础》 GangofFou

温馨提示

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

评论

0/150

提交评论