华南理工大学UML课件.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华南理工大学UML课件

软件需求分析与建模 -设计模式 设计模式的起源 模式的研究起源于建筑工程设计大师Christopher Alexander的关于城市规划和建筑设计的著作(《建筑的永恒之道》). 在面向对象的编程中使用模式化方法研究的开创性著作《设计模式-可复用面向对象软件的基础》 这本书的四位作者也通常被称为“四人帮”。 建议阅读以下三本书 1.设计模式-可复用面向对象软件的基础 2.Java与模式,作者:阎宏。 3.Inside VCL,作者:李维。 设计模式的分类 设计模式的分类及其相互间关系 模式的另一种分类 Architectural Patterns 表达了软件系统的基本结构组织形式或者结构方案 它包含一组预定义的子系统,规定了这些子系统的责任,同时还提供了用于组织和管理这些子系统的规则和向导 Design Patterns 为软件系统的子系统、组件或者组件之间的关系提供一个精炼之后的解决方案 它描述了在特定环境下,用于解决通用软件设计问题的组件以及这些组件相互通信时的可重现结构 Idioms 是一个与编程语言相关的低级模式 它描述了如何实现组件的某些功能,或者利用编程语言的特性来实现组件内部要素之间的通信功能 设计模式的指导原则 重用(reuse):是目标 两种重要的重用手段 Inheritance composition/aggregation 接口与实现分离 接口保持不变,分离带来灵活性 多态性(polymorphism) Decouple 降低复杂性 工厂模式的几种类型 工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态地决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式具有以下几种类型: 1.简单工厂:又称静态工厂方法模式 2.工厂方法:又称多态性工厂模式 3.抽象工厂模式:又称工具箱模式(Toolkit) 简单工厂模式 简单工厂模式是类的创建模式 情况1:客户端需要创建各种不同的对象 以类Sample为例, 假设要创建Sample的实例对象:  Sample sample=new Sample(); 有时候可能要创建不同的Sample对象,那么可以用: If choice = 1 then sample = new Sample1 Else if chose = 2 then sample = new Sample2 Else sample = new Sample3 情况2:创建时包含大量的初始化工作 如果创建sample实例时包含了大量的初始化工作,例如赋值、查询数据库、安全审核、日志记录等,那么对象的构造函数中就包含了大量的额外工作。 上述两种情况都是将对象的创建与使用混合在一起,容易使得代码变得非常复杂。 如何解决这个问题呢? 要解决这个问题,应该尽量将创建实例的工作与使用实例的工作分开,也就是说,让客户端所做的各种判断或者创建实例所需要的大量初始化工作与对象本身的构造分离开。 角色与结构 工厂类(Creator)角色:该角色是工厂方法模式的核心,含有与应用紧密相关的商业逻辑。工厂类在客户端的直接调用下创建产品对象,它往往由一个具体类实现。 抽象产品(Product)角色:担任这个角色的类是工厂方法模式所创建的对象的父类,或它们共同拥有的接口。抽象产品角色可以用接口或者抽象类实现。 具体产品(Concrete Product)角色:工厂方法模式所创建的任何对象都是这个角色的实例,具体产品角色由一个具体类实现。 实现 Creator 类的源代码 public class Creator {/** * 静态工厂方法 */ public static Product factory() { return new ConcreteProduct(); } } 例子 //java中的简单工厂模式如下例   /**   手机接口  **/   public interface Mobile{   public void call();   }   /**   诺基亚手机   **/   public class Nokia implements Mobile{   public void call(){   System.out.println(Nokia produced ...);   }   }   /**  摩托罗拉手机   **/   public class Motorola implements Mobile{   public void call(){   System.out.println(Motorola produced ...);   }   } /**  

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档