软件设计模式及其使用
2022-08-08
来源:易榕旅网
计算机光盘软件与应用 信息技术应用研究 Computer CD Software and Applications 2010年第7期 软件设计模式及其使用 李璇 (河北邯郸职业技术学院,河北邯郸056001) 摘要:文章综述了面向对象软件的各种设计模式,描述了各种模式之间的关系以及它们在软件设计过程中的使用, 并对设计模式的进一步发展作出展望。 关键词:软件;设计模式;使用 中图分类号:TP31 1.52 文献标识码:A 文章鳊号:1007—9599(2010)07—0006—01 The Designing Model&Using of Software LiXuan (HeBei HanDan Polytechnic College,Handan 056001,China) Abstract:The paper describes the sorts of design models,and the relationship between them,nd usesa in the courses of designing software,also advances the further developing of designing models. .Keywords:Software;Desighing models;Using 设计模式概述 计算机科学中对设计模式的简单定义就是对于一类重复出现 的问题的一种可重用的解决方案。 个模式有四个基本要素:模 名称,是助记名,它用来描 述模式问题、解决方案和效果。ld题,描述应该在何时使用模式。 它解释设计问题和问题存在的前因后果,可能描述特定的设计问 题,也可能描述导致不灵活设计的类或对象结构。解决方案,描 述一个设计的各个组成成分(结构),以及它们之间的相互关系 及各自的职责和协作方式。效果,描述模式使用的效果及使用模 式应注意的问题。 二、设计模式分类 根据模式是用来完成什么工作的不同,将设计模式分为创建 型模式、结构型模式、行为型模式三种。 (一)创建型设计模式:与对象的创建有关,即描述怎样创 建一个对象,它隐藏对象创建的具体细节,使程序代码不依赖具 体的对象,当增加一个新对象时不需要修改代码即可。创建型类 模式将对象的部分创建工作延迟到子类,而创建型对象模式则将 它延迟到另一个对象中。创建型类模式有FactoryMethod(工厂 方法)模式,创建型对象模式包括AbstractFactory(抽象工厂)、 Builder(生成器)、Prototype(原型)、Singleton(单件)四 种模式。创建型模式中,AbstractFactory由工厂对象产生多个 类的对象;Builder是由这个工厂对象使用一个相对复杂的协议, 逐步创建一个相对复杂的产品;Prototype是由该工厂对象通过 拷贝原型对象来创建产品对象;Singleton确保一个类只创建一 个实例;FactoryMethod是生成所要创建的对象的类的子类。 (二)结构型设计模式:处理类或对象的组合,即描述类和 对象之间组织起来形成大的结构,从而实现新的功能。结构型类 模式采用继承机制来组合类,如Adapter(适配器类)模式;结 构型对象模式则描述了对象的组装方式,如Adapter(适配器对 象)模式、Bridge(桥接)模式、Composite(组合)模式、Decorator (装饰)模式、Facade(外观)模式、Hyweight(享元)模式、 Proxy(代理)模式。 (三)行为型设计模式:描述算法以及对象之间的任务(职 责)分配,它描述的不仅仅是类或对象的设计模式,还有它们之 间的通讯模式。行为型类模式使用继承机制在类间分派行为,如 TemplateMethod(模板方法)模式和Interpreter(解释器)模 式;行为型对象模式使用对象复合而不是继承,描述一组对象怎 样协作完成单个对象所无法完成的任务, 如 ChainofRepons ility(职责链)模式、Command(命令)模式、 Iterator(迭代器)模式、Mediator(中介者)模式、Memento (备忘录)模式、Observer(观察者)模式、State(状态)模式、 Strategy(策略)模式、Visitor(访问者)模式。 三、设计模式使用 介绍设计面向对象软件的设计模式,可以帮助设计者更好更 快的完成面向对象的软件设计。 一、一(一)设计模式选择。任意一个需求,总是牵涉到一个或几 个特定的问题领域。假定你正在准备设计一个编译器,你很快会 想到这与Interpreter模式有关,而解释器模式中,客户首先要 创建抽象语法树,抽象语法树中的终结符是一种大量细粒度的对 象,这就很明确要用到Hyweight模式共享终结符,想到要用 Iterator(迭代器)进行遍译,并用ViSitor(访问者)在一个 类中维护抽象语法树,因为抽象语法树通常是复合模式的实例, 所以要用到Composite模式。这种首先理解问题需求,然后循序 渐进地不断找出要用的模式或模式组,从选择设计模式的方法在 设计过程中大有益处。 (二)设计模式使用。设计模式选择好后,就是将模式有效 应用到系统设计过程的问题。 1.理解所选择的模式,注意模式的适用条件和模式使用效果, 确定该模式是否适合要解决的实际问题。 2.研究模式的结构、组成以及它们之间如何协作,确保设计 人员理解这个模式的类、对象以及关联关系。 3.选择模式参与者的名字,使它们在具体应用中有意义。 4.定义类,声明它们之间的接口,建立它们的继承关系,定 义代表数据和对象引用的实例变量。 5.定义模式中专用于应用的操作名称,名字一般依赖于应用, 使用的名字必须一致。 6.实现执行模式中责任和协作的操作。 (三)设计模式应用。设计模式在一些基于MFC(微软基础类 库)构建的Windows应用程序中使用。MFC是构建基于Windows的 应用程序类库,介绍可视化的文档编辑器(如Office办公软件)。 可视化编辑的文档可能是一般文件,一个电子数据报表,或一个图 形文件。这些文档都是DOCUMENT类的子类对象,对这些对象进行 可视化编辑时,必须通过VIEW类的子类生成的视图对象(视图对 象的目的是确保其表现反映一个文档对象的状态)来创建一个具体 的应用,MFC将文档对象和视图对象分开,并且在文档和视图对象 之间通过发布/订阅(即Observer模式)方式来实现。 四、结束语 国外设计模式研究工作进展很快,不断总结出新的模式,并 且很多软件开发工具和环境增加了对他们的支持,有些研究机构 还设想将设计模式用形式化表示让机器自动生成代码,一些类库 正在被开发以支持设计模式的实现(如JAVA在其标准类库中提供 了这样一些支持)。 参考文献: f11钟茂生,王明文.软件设计模式及其使用 计算机应用,2002,8 【2】梁义芝,王延章,赵晓哲,缪旭东.软件领域中的模式研究卟计算 机科学,2003,3 作者简介 李璇(1973一),女,天津市人,中共党员,硕士在读,讲师,现 任邯郸职业技术学院工学服务中心副主任。 ——6——