设计模式02-创建型模式-单例、工厂方法_第1页
设计模式02-创建型模式-单例、工厂方法_第2页
设计模式02-创建型模式-单例、工厂方法_第3页
设计模式02-创建型模式-单例、工厂方法_第4页
设计模式02-创建型模式-单例、工厂方法_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

设计模式02郑州大学软件(ruǎnjiàn)学院赵哲共三十一页主要(zhǔyào)内容简介(jiǎnjiè)设计模式Singleton模式FactoryMethod工厂方法郑州大学软件学院赵哲共三十一页设计模式什么是设计模式?设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验(jīngyàn)的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。郑州大学软件(ruǎnjiàn)学院赵哲共三十一页四人帮GoF(设计模式四人组)四人帮GangofFour即ErichGamma、

RichardHelm、

RalphJohnson、JohnVlissides《DesignPatterns:ElementsofReusableObject-OrientedSoftware》(1995年)第一次将设计模式提升到理论(lǐlùn)高度,并将之规范化。该书提出了23种基本设计模式。郑州大学软件(ruǎnjiàn)学院赵哲共三十一页四人帮郑州大学软件(ruǎnjiàn)学院赵哲共三十一页设计模式的分类(fēnlèi)创建型模式负责对象的创建第三章结构型模式处理类和对象间的组合(zǔhé)第四章行为模式类与对象交互中的职责分离第五章郑州大学软件学院赵哲共三十一页真刀实枪的设计模式郑州大学软件(ruǎnjiàn)学院赵哲共三十一页创建(chuàngjiàn)模式第一种Singleton

PatternP84单件/单例模式意图(yìtú):一个类仅有一个实例,并提供一个访问它的全局访问点为什么一个类只要一个实例?动机是什么?郑州大学软件学院赵哲共三十一页单例模式(móshì)动机如:任务(rènwu)管理器游戏中的人物打印机回收站郑州大学软件学院赵哲共三十一页单例模式(móshì)特点该类不能被外界任意实例(shílì)化该类向外界提供一个可获得该类的实例的方法该类只能被实例化一次郑州大学软件学院赵哲共三十一页共三十一页例子(lìzi)暴力摩托(mótuō)开摩托只有一辆车(都能得到一个Moto实例)郑州大学软件学院赵哲共三十一页只给司机(sījī)一辆车郑州大学软件(ruǎnjiàn)学院赵哲共三十一页练习(liànxí)回收站Recycle(类)有删除Delete功能外界无论(wúlùn)多少次调用回收站的删除功能,有且只有一个实例尝试用单例模式实现郑州大学软件学院赵哲共三十一页回顾(huígù)P84单例模式(móshì)SingletonPattern意图郑州大学软件学院赵哲共三十一页问题(wèntí)Monsterm=newMonster();若对象的创建过程(guòchéng)过于繁琐或庞大,或该类有可能进行同类型扩展则建议将类的创建单独放在一个类里进行,这个类叫做工厂。共三十一页2、工厂(gōngchǎng)方法P70意图(yìtú)Defineaninterfaceforcreatinganobject,butlettheclassesthatimplementtheinterfacedecidewhichclasstoinstantiate[ɪns'tænʃɪeɪt]TheFactorymethodletsaclassdefer[dɪˈfɚ]instantiation[ɪn,stænʃɪeɪʃən]tosubclasses.郑州大学软件学院赵哲共三十一页工厂(gōngchǎng)方法根据单一职责原则专门(zhuānmén)的类用来实例化对象我们习惯把这种的类叫做工厂工厂用来创建对象郑州大学软件学院赵哲共三十一页共三十一页扩展后-工厂(gōngchǎng)模式共三十一页扩展后-简单(jiǎndān)工厂共三十一页共三十一页简单工厂(gōngchǎng)示例郑州大学软件(ruǎnjiàn)学院赵哲<<Interface>>产品大类别…产品B产品A对抽象方法的实现:创建对象<<Interface>>工厂Create()共三十一页工厂(gōngchǎng)方法结构图P71郑州大学软件(ruǎnjiàn)学院赵哲共三十一页总结(zǒngjié)Aa=newA();多考虑,是否用工厂模式,虽然这样做,可能多做一些(yīxiē)工作,但会给你系统带来更大的可扩展性和尽量少的修改量。郑州大学软件学院赵哲共三十一页例子(lìzi)ADO的程序中,有两个helper类,SQLHelper和OracleHelper,用来操作(cāozuò)SqlServer和Oracle。这两个类提供了open,close,operation等方法。程序可能会根据客户的需求不同,连接不同的数据库。要求使用工厂方法或简单工厂,设计出用户需求改变时,代码更改最小的程序。画类图、写父子类代码、写main方法郑州大学软件学院赵哲共三十一页郑州大学软件(ruǎnjiàn)学院赵哲共三十一页代码(dàimǎ)郑州大学软件(ruǎnjiàn)学院赵哲共三十一页郑州大学软件(ruǎnjiàn)学院赵哲共三十一页郑州大学软件(ruǎnjiàn)学院赵哲共三十一页内容(nèiróng)总结设计模式02。郑州大学软件学院赵哲。设计模式(Designpattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验(jī

温馨提示

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

评论

0/150

提交评论