软件体系结构.doc_第1页
软件体系结构.doc_第2页
软件体系结构.doc_第3页
软件体系结构.doc_第4页
软件体系结构.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

西安工程大学实验报告课程 软件体系结构 实验名称 软件体系结构的设计模式设计实验第 页 共 页系 别 计算机科学学院实 验 日 期 年 月 日专业班级_软件1401班_组别_ 实 验 报 告 日 期 年 月 日姓 名_曹楠楠_学号_41409050119_ 报 告 退 发 ( 订正 、 重做 )E_mail:_ 教 师 审 批 评 分_ 一、 实验目的和任务 实验内容: 利用设计模式设计构件的业务逻辑 要求:u 设计一创建型设计模式实例u 设计一结构型设计模式实例u 设计一行为型设计模式实例u 完成相应的类结构图、顺序图实验目的: 1:掌握设计模式的思想、设计过程、适用环境、实现方法2:掌握构件业务逻辑的UML描述二、 实验环境和设备硬件环境需求:P4以上的个人计算机环境,要求内存不少于2GB,硬盘不小于800G.。软件环境需求: 操作系统: Windows XP以上 数据库: SQL Server 2005 数据库系统 CASE工具:模型绘图工具: Microsoft Visio 2003软件体系结构建模工具:AcmeStudioUML建模工具:Rose 2003 、PowerDesigner12文本编辑工具: Microsoft Word 2003三、实验步骤和过程实验内容:创建型设计模式实例:简单工厂:提供创建对象的接口 实例:电影订票/测试类public class Test public static void main(String args)Ticket ticket1 = FactoryTicket.CreatTicket(普通票);ticket1.GetTicket();Ticket ticket2= FactoryTicket.CreatTicket(会员票);ticket2.GetTicket();/电影票工厂public class FactoryTicket public static Ticket CreatTicket(String type)Ticket ticket = null;switch(type)case会员票:ticket = new Member_Ticket();break;case普通票:ticket = new General_Ticket();break;return ticket;/电影票父类public class Ticket private int money;public void GetTicket() /普通票public class General_Ticket extends Ticketprivate int money = 200;public void GetTicket() System.out.println(您选择的是普通票价为:+money+元); /会员票public class Member_Ticket extends Ticket private int money = 100; public void GetTicket() System.out.println(您选择的是会员票价为:+money+元); 结果: 类图: 顺序图:结构型设计模式实例:桥接模式:将抽象部分与它的实现部分分离,使他们都可以独立的改变; 将抽象与现实解耦;实例:不同影城不同影票/Abstraction类public abstract class Ticket public Cinema cinema;public void setCinema(Cinema cinema)this.cinema = cinema;public abstract void print();/普通类public class General extends Ticket Overridepublic void print() cinema.run();System.out.println(普通票);/会员类public class Member extends Ticket Overridepublic void print() cinema.run();System.out.println(会员票);/Implementor类public abstract class Cinema public abstract void run();/影城:曲江国际影城public class Qujiang_cinema extends Cinema Overridepublic void run() System.out.print(曲江国际影城:);/影城:万达影城public class Wanda_cinema extends CinemaOverridepublic void run() System.out.print(万达影城:);/测试类public class Test public static void main(String args)Ticket ticket1 = new General();ticket1.setCinema(new Wanda_cinema();ticket1.print();Ticket ticket2 = new Member();ticket2.setCinema(new Wanda_cinema();ticket2.print();Ticket ticket3 = new General();ticket3.setCinema(new Qujiang_cinema();ticket3.print();Ticket ticket4 = new Member();ticket4.setCinema(new Qujiang_cinema();ticket4.print();结果:类图:顺序图:行为型设计模式实例:策略模式:定义一系列算法,把它们一个个封装起来,并且使它们可相互替换,本模式使得算法可独立于使用它的客户而变化。这个模式涉及到三个角色:环境(Context)角色:持有一个Strategy的引用。抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。实例:会员买票/抽象策略类public abstract Strategy public double calcPrice(double booksPrice);/具体策略类public class GeneralStrategy extends Strategypublic double calcPrice (double booksPrice) System.out.println(对于普通会员的无折扣); return booksPrice; public class MemberStrategy extends Strategy public double calcPrice (double booksPrice) System.out.println(对于会员的折扣为20%); return booksPrice * 0.8; /环境角色public class Price private Strategy strategy; public Price(Strategy strategy) this.strategy = strategy; public double quote(double booksPrice) return this.strategy.calcPrice(booksPrice); /测试类public class Test public static void main(String args) /创建需要使用的策略对象Strategy strategy = new GeneralStrategy();Strategy strategy1 = new MemberStrategy(); /创建环境 Price price = new Price(strategy); Price price1 = new Price(strategy1); /计算价格 double quote = price.quote(300); System.out.println(图书的最终价

温馨提示

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

评论

0/150

提交评论