体系结构-41309050219_第1页
体系结构-41309050219_第2页
体系结构-41309050219_第3页
体系结构-41309050219_第4页
体系结构-41309050219_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、 实验一: 软件体系结构描述语言与建模实验实验要求: 利用Acme Studio进行软件体系结构风格建模。 要求:u 描述C2软件体系结构风格u 设计此体系结构风格的一实例实验目的: 1: 学习软件体系结构描述语言Acme,掌握建立体系结构模型的一般原则和方法。2: 熟悉Acme Studio的使用方法。3: 熟悉软件体系结构风格。参考模型:C2软件体系结构模型实验内容:C2软件体系结构风格: 通过连接件绑定在一起的按照一组规则运作的并行构件网络。C2风格中的系统组织规则如下: 1)、系统中的构件和连接件都有一个顶部和底部; 2)、构件的顶部应连接到某连接件的底部,构件的底部应连接到某连接件的

2、顶部,而构件与构件之间直接连接是不允许的; 3)、一个连接件可以和任意数目的其他构件和连接件连接; 3)、当两个连接件进行直接连接时,必须由其中一个底部到另一个顶部。实例:水温报警:Datebase:数据库访问构件;Class_fuwu:该构件封装了监测类,负责类的信息及相应操作;Baojing:报警构件,设置报警信息,报警级别;Fasong:发送构件,监测水温的变化幅度,时间。Shebei_jiankong:设备监控构件,监测设备是异常,正常;Baojing_fuwu:报警服务构件,从数据库中获取监控信息;System c2 = Component baojing = Port port3

3、= Port port4 = Component datebase = Port port1 = Component fasong = Port port5 = Port port6 = Component shebei_jiankong = Port port7 = Port port8 = Component baojing_fuwu = Port port10 = Component class_fuwu = Port port1 = Port port2 = Connector con1 = Role role0 = Role role1 = Connector con2 = Role

4、 role0 = Role role1 = Role we = Connector con3 = Role role0 = Role role1 = Role we1 = Connector con4 = Role role0 = Role role1 = Attachment class_fuwu.port1 to con1.role0; Attachment datebase.port1 to con1.role1; Attachment baojing.port4 to con2.role1; Attachment fasong.port6 to con2.we; Attachment

5、class_fuwu.port2 to con2.role0; Attachment baojing.port3 to con3.role1; Attachment fasong.port5 to con3.role0; Attachment shebei_jiankong.port8 to con3.we1; Attachment baojing_fuwu.port10 to con4.role0; Attachment shebei_jiankong.port7 to con4.role1; 实验二:软件体系结构的设计模式设计实验实验要求: 利用设计模式设计构件的业务逻辑 要求:u 设计一

6、创建型设计模式实例u 设计一结构型设计模式实例u 设计一行为型设计模式实例u 完成相应的类结构图、顺序图实验目的: 1:掌握设计模式的思想、设计过程、适用环境、实现方法2:掌握构件业务逻辑的UML描述参考模型:类结构图:顺序图:实验内容:创建型设计模式实例:简单工厂:提供创建对象的接口 实例:电影订票/测试类public class Test public static void main(String args)Ticket ticket1 = FactoryTicket.CreatTicket(普通票);ticket1.GetTicket();Ticket ticket2= Factory

7、Ticket.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;

8、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+元); 结果: 类

9、图: 顺序图:结构型设计模式实例:桥接模式:将抽象部分与它的实现部分分离,使他们都可以独立的改变; 将抽象与现实解耦;实例:不同影城不同影票/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();

10、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(曲江国际影城:

11、);/影城:万达影城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_

12、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)角色:持有

13、一个Strategy的引用。抽象策略(Strategy)角色:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。具体策略(ConcreteStrategy)角色:包装了相关的算法或行为。实例:会员买票/抽象策略类public abstract Strategy public double calcPrice(double booksPrice);/具体策略类public class GeneralStrategy extends Strategypublic double calcPrice (double booksPrice) System.out.pri

14、ntln(对于普通会员的无折扣); 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(); /创建环境 Pr

温馨提示

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

评论

0/150

提交评论