欢迎来到天天文库
浏览记录
ID:46569538
大小:434.50 KB
页数:35页
时间:2019-11-25
《设计模式系列讲座(一)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、论设计模式在实际中的应用(设计模式概述)项目部:陈习文E_Adon@163.com设计模式概述什么是设计模式?模式,即pattern。其实就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是模式。经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。模式有不同的领域,建筑领域有建筑模式,软件设计领域也有设计模式。当一个领域逐渐成熟的时候,自然会出现很多模式。
2、设计模式概述为什么要使用模式?因为模式是一种指导,在一个良好的指导下,有助于你完成任务,有助于你作出一个优良的设计方案,达到事半功倍的效果。而且会得到解决问题的最佳办法。设计模式使人们可以更加简单方便地复用成功的设计和体系结构。设计模式概述模式的四个基本要素1.模式名称(patternname)2.问题(problem)3.解决方案(solution)4.效果(consequences)四个基本要素1.模式名称(patternname)一个助记名,它用一两个词来描述模式的问题、解决方案和效果。命
3、名一个新的模式增加了我们的设计词汇。设计模式允许我们在较高的抽象层次上进行设计。基于一个模式词汇表,我们自己以及同事之间就可以讨论模式并在编写文档时使用它们。模式名可以帮助我们思考,便于我们与其他人交流设计思想及设计结果。找到恰当的模式名也是我们设计模式编目工作的难点之一。四个基本要素2.问题(problem)描述了应该在何时使用模式。它解释了设计问题和问题存在的前因后果,它可能描述了特定的设计问题,如怎样用对象表示算法等。也可能描述了导致不灵活设计的类或对象结构。有时候,问题部分会包括使用模式
4、必须满足的一系列先决条件。四个基本要素3.解决方案(solution)描述了设计的组成成分,它们之间的相互关系及各自的职责和协作方式。因为模式就像一个模板,可应用于多种不同场合,所以解决方案并不描述一个特定而具体的设计或实现,而是提供设计问题的抽象描述和怎样用一个具有一般意义的元素组合(类或对象组合)来解决这个问题。四个基本要素4.效果(consequences)描述了模式应用的效果及使用模式应权衡的问题。尽管我们描述设计决策时,并不总提到模式效果,但它们对于评价设计选择和理解使用模式的代价及好
5、处具有重要意义。软件效果大多关注对时间和空间的衡量,它们也表述了语言和实现问题。因为复用是面向对象设计的要素之一,所以模式效果包括它对系统的灵活性、扩充性或可移植性的影响,显式地列出这些效果对理解和评价这些模式很有帮助。基本设计模式基本设计模式分类创建型模式3.1.抽象工厂模式(AbstractFactory)提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,
6、工厂类也要做相应的修改。如:如何创建及如何向客户端提供。例:麦当劳和肯德基的鸡翅创建型模式3.2.工厂方法模式(FactoryMethod)定义一个用于创建对象的接口,让子类决定将哪一个类实例化。FactoryMethod使一个类的实例化延迟到其子类。核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。例:让服务员解释汉堡的不同口味创建型模式3.3.建造模式(Builder)将一个
7、复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。将产品的内部表象和产品的生成过程分割开来,从而使一个建造过程生成具有不同的内部表象的产品对象。建造模式使得产品内部表象可以独立的变化,客户不必知道产品内部组成的细节。建造模式可以强制实行一种分步骤进行的建造过程。例:hello!创建型模式3.4.原型模式(Prototype)通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的方法创建出更多同类型的对象。原始模型模式允许动态的增加或减少产品类,产品类不需要非得
8、有任何事先确定的等级结构,原始模型模式适用于任何的等级结构。缺点是每一个类都必须配备一个克隆方法。例:情书创建型模式3.5.单例模式(Singleton)保证一个类仅有一个实例,并提供一个访问它的全局访问点。单例模式只应在有真正的“单一实例”的需求时才可使用。例:学校结构型模式4.1.适配器模式(Adapter)将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。适配类可以根据参数返还一个合适的实例给客户端。结构型模式4.2.桥
此文档下载收益归作者所有