书签 分享 收藏 举报 版权申诉 / 65
上传文档赚钱

类型设计模式框架与实践课件.ppt

  • 上传人(卖家):晟晟文业
  • 文档编号:4945674
  • 上传时间:2023-01-27
  • 格式:PPT
  • 页数:65
  • 大小:1.13MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《设计模式框架与实践课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    设计 模式 框架 实践 课件
    资源描述:

    1、设计模式、框架及其实践 张永吉 .怎样成为一个象棋高手??第一步,学习基本规则 第二步,学习取胜的原理 这时,你说你已经学会下棋学会下棋了 但是,你要想成为一个象棋高手,除了多下棋和善于总结经验以外,一个重要的途径就是看高手们的棋谱,学习、理解、记忆和应用高手们总结的布局和定式?这里的布局和定式就相当于我们说的模式,有几百种。.怎样成为一个软件设计高手??第一步,学习基本规则。例如,数据结构、各种算法、编程语言等。?第二步,学习软件设计的原理和方法。例如,结构程序设计、模块化方法、面向对象的设计方法等。这时,你已经可以说学会软件设计学会软件设计了。?但是,你要想成为一个软件设计的高手,除了多动

    2、手和自己善于总结经验总结经验以外,一个重要的途径就是看软件设计的高手们的软件,学习、理解、记忆和重复应用软件设计模式。?这种模式很多,有几百种。.目标?了解面向对象设计的基本原则了解面向对象设计的基本原则 了解设计模式概念及常用的设计模式 了解框架的概念及设计原则 掌握设计模式的学习方法.内容?面向对象设计开发的基本原则 设计模式概念、分类及常用设计模式 框架概念及设计原则 设计模式的运用实例?油品计算框架?基于Jexcel的简易报表开发框架?Junit 设计.面向对象设计原则?开闭原则 针对接口编程原则 高内聚-低耦合原则 最少知识原则 类的单一职责原则 依赖倒置原则 里氏代换原则 .开闭原

    3、则?扩展系统的行为时,不需要修改以前的代码,而是扩展以前的代码?针对修改关闭?针对扩展开放?提高代码的可维护性.针对接口编程原则?接口是高层的抽象 接口可以隐藏实现的细节 接口可以清晰指出对象的职责 接口是实现软件pluggable的关键 松散耦合 增加重用的可能性.类的单一职责原则?一个类只做一件事?一个类的职责仅仅有一个原因而发生改变?例:如一个界面展示类夹杂业务逻辑代码或者数据数据库联接代码。.依赖倒置原则?抽象不应该依赖于具体?具体应该依赖于抽象?抽象依赖于具体,降低了重用的可能性.结构化编程 面向对象的架构.里氏代换原则?在所有引用基类的地方,都可以用此基类的子类替换,而不影响程序原

    4、来的功能?违背里氏代换原则将给程序带来不稳定性.class 鸟 public void 飞();class 鹦鹉 public void 学话();.class 鸵鸟:鸟 public void 飞()throws(“鸵鸟不能飞”);/public void play(鸟 d)d.飞();/此处换成鸵鸟将导致错误 .目标?了解面向对象设计的基本原则 了解设计模式概念及常用的设计模式了解设计模式概念及常用的设计模式 了解框架的概念及设计原则 掌握设计模式的学习方法.设计模式?为什么使用设计模式?什么是设计模式?如何描述一个设计模式?如何选择一个设计模式?设计模式的分类.为什么使用设计模式??僵化

    5、性(Rigidity):设计难以改变。脆弱性(Fragility):设计易于遭到破坏。牢固性(Immobility):设计难以重用。粘滞性(Viscosity):难以做正确的事情。不必要的复杂性(Needless Complexity):过分设计。?不必要的重复(Needless Repetition):过多的重复。?晦涩性(Opacity):混乱的表达。.什么是设计模式??面向对象设计经验的总结和理论化抽象?描述了软件设计过程中经常碰到的问题及其解决方案核心。.如何描述一个设计模式??意图 别名 动机 适用性 结构 参与者?协作 效果 实现 代码示例 已知应用 相关模式.如何选择一个设计模式

    6、??了解每一个设计模式所解决的问题 了解模式的静态结构 了解模式的动态结构 查看当前设计系统易变的部分.设计模式的分类?创建者模式?有关对象创建的模式?结构型模式?描述对象构造和组成的方式?行为模式?描述一组对象交互的方式.创建者模式?简单工厂模式(Simple Factory)工厂方法 (Factory Method)抽象工厂 (Abstract Factory)建造者模式 (Builder)原型模式 (Prototype)单例模式 (Singleton).工厂模式?封装对象(产品)的构建过程 .一般的对象创建方式?.Noodle noodle=new Noodle();Bread brea

    7、d=new Bread();Rice rice=new Rice();使用工厂创建对象 .餐厅里供应的菜谱 .简单工厂?简单工厂-手工作坊,个体户?生产面包,米饭,面条?所有的产品都有一个大师傅制作.简单工厂示例代码 .调用者代码 .工厂方法?工厂方法-规模扩大,更专业 工厂和产品是平行的继承层次结构 每一种产品都有专门的大师傅制作 有面包师,面条师,米饭师.工厂方法类图 客户端客户端Factory+create():ProductProduct具体工厂具体工厂1具体工厂具体工厂2具体产品具体产品1具体产品具体产品2.抽象工厂?产品线的生产方式?提供西北系列饮食?西北面包,西北面条,西北米饭?

    8、提供东北系列饮食?东北面包,东北面条,东北米饭.抽象工厂类图 Factory+createProductA():ProductA+createProductB():ProductB+createProductC():ProductCProductAProductBProductCI型具体产品型具体产品AII型具体产品型具体产品AI型具体产品型具体产品BII型具体产品型具体产品BI型具体产品型具体产品CII型具体产品型具体产品CI型产品工厂型产品工厂II型产品工厂型产品工厂.更好的工厂实现方法?基于反射的实现方式?采用xml或数据库保存类的配置信息?Spring的Bean工厂 .SpringBe

    9、an工厂示例.工厂模式的总结?简单工厂模式不满足开闭原则?工厂方法模式对增加新产品支持开闭原则?抽象工厂对增加新的产品系列满足开闭原则.建造者模式?解决一个复杂对象的构造过程?一碗兰州拉面由面条,汤,肉,香菜组成 ProductBuilder+buildPartA()+buildPartB()+buildPartC()+buildPartD()+getProduct():Product具体产品具体产品具体具体Builder1具体具体Builder2.原型模式?通过复制对象的方式来创建对象?Java和.net均提供了对原型模式的直接支持.单例模式 public final class Sprin

    10、gBeanUtil private static SpringBeanUtil springBeanUtil=null;private SpringBeanUtil()public static SpringBeanUtil getInstanse()if(null=springBeanUtil)springBeanUtil=new SpringBeanUtil();return springBeanUtil;.结构模式?适配器模式适配器模式 (Adapter)桥接模式 (Bridge)组合模式 (Composite)装饰模式 (Decorator)外观模式 (Facade)代理模式 (Pro

    11、xy)亨元模式 (Flyweight).适配器模式?把一个类的接口转变成客户希望的接口?使原本接口不一致的类提供统一的调用接口 220V电源接口电源接口+220V()220V电源电源+220V()220电压适配器电压适配器-power:110V电源+220V()110V电源电源.结构模式?适配器模式 (Adapter)桥接模式 (Bridge)组合模式组合模式 (Composite)装饰模式 (Decorator)外观模式 (Facade)代理模式 (Proxy)亨元模式 (Flyweight).组合模式 文件夹抽象接口文件夹抽象接口文件文件文件夹文件夹1.装饰模式?适配器模式 (Adapte

    12、r)桥接模式 (Bridge)组合模式 (Composite)装饰模式装饰模式 (Decorator)外观模式 (Facade)代理模式 (Proxy)亨元模式 (Flyweight).房子房子装饰模式的引入-较深层次的继承结构 白胚房子白胚房子 装了窗的房子装了窗的房子装了水电的房子装了水电的房子装了家具的房子装了家具的房子.装饰模式?代替深层的继承结构代替深层的继承结构 房子房子白胚房白胚房房子装饰器房子装饰器1装水电装水电装门窗装门窗装柜子装柜子.示例代码 .结构模式?适配器模式 (Adapter)桥接模式 (Bridge)组合模式 (Composite)装饰模式 (Decorator)

    13、外观模式外观模式 (Facade)代理模式 (Proxy)亨元模式 (Flyweight).外观模式?外部与一个子系统的通信仅通过一个门面类进行。客人 前台接待员 市场部 财务部 销售部 系统集成部 经理办公室.行为模式?职责链模式 (Chain of Reponsibility)命令模式 (Command)解释器模式 (Interpreter)迭代子模式 (Iterator)调停者模式 (Mediator)备忘录模式 (Memento)观察者模式观察者模式 (Observer)状态模式 (State)策略模式 (Strategy)模板方法模式(Template Method)参观者模式 (V

    14、isitor).观察者模式?发布-订阅 一个主题,多个观察者 主题发生变化是,多个观察者被通知 Java和.net都有默认实现.示例类图 .示例代码 .行为模式?职责链模式 (Chain of Reponsibility)命令模式 (Command)解释器模式 (Interpreter)迭代子模式 (Iterator)调停者模式 (Mediator)备忘录模式 (Memento)观察者模式 (Observer)状态模式 (State)策略模式策略模式 (Strategy)模板方法模式(Template Method)观察者模式 (Visitor).策略模式?针对一组算法,定义一个公共的接口,而

    15、将算法的不同实现方式封装到单独的类中 油罐计算类油罐计算类计算体积修正系数计算体积修正系数+calculate()原油计算逻辑原油计算逻辑+calculate()成品油计算逻辑成品油计算逻辑+calculate()化工产品计算逻辑化工产品计算逻辑+calculate().行为模式?职责链模式 (Chain of Reponsibility)命令模式 (Command)解释器模式 (Interpreter)迭代子模式 (Iterator)调停者模式 (Mediator)备忘录模式 (Memento)观察者模式 (Observer)状态模式 (State)策略模式 (Strategy)模板方法模式

    16、模板方法模式(Template Method)观察者模式 (Visitor).模板方法模式?在较高的抽象层次定义一组操作?定义了抽象操作之间的执行关系 报表构建报表构建+建立模板()+填充数据()+后续处理()+构建()void 构建()建立模板();填充数据();后续处理();报表构建器报表构建器+建立模板()+填充数据()+后续处理()+构建().目标?了解面向对象设计的基本原则 了解设计模式概念及常用的设计模式 了解框架的概念及设计原则了解框架的概念及设计原则 掌握设计模式的学习方法.什么是框架??解决某一特定领域的问题 由一组接口和类组成 好莱坞原则:Dont call us,well

    17、 call you 冻点(Frozen Spots)热点(Hot Spots)框架的重用性 框架的可扩展性.一个优秀的框架式如何产生的 1.2.3.4.抽象(抽象很难一次实现)类的职责分配 代码的重构 重复以上步骤.目标?了解面向对象设计的基本原则 了解设计模式概念及常用的设计模式 了解框架的概念及设计原则 掌握设计模式的学习方法掌握设计模式的学习方法.设计模式学习的基础?熟悉面向对象的基本概念(继承,封装,多态)?熟悉面向对象的基本原则?熟悉UML常用静态关系-泛化,组合,关联 .设计模式学习的方法和原则?看成熟框架的开源代码,逆向工程 实践-思考-实践-思考 一个循环上升的过程 原则?了解

    18、设计模式能解决哪些问题?不要为了模式而模式.Q&A Any question?.参考资料?设计模式-可复用面向对象软件的基础 Gang of Four 敏捷软件开发 Robert C.Martin 企业应用架构模式 Martin Fowler 重构-改善既有代码的设计 Martin Fowler Head First Design Patterns Object Design:Roles,Responsibilities,and Collaborations UML和模式应用 Craig Larman java与模式 阎宏 JUnit A Cooks Tour? http:/en.wikipedia.org/wiki/Design_pattern_(computer_science).

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:设计模式框架与实践课件.ppt
    链接地址:https://www.163wenku.com/p-4945674.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库