欢迎来到天天文库
浏览记录
ID:61487501
大小:494.00 KB
页数:20页
时间:2021-02-05
《课程设计模板--面向对象技术.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、通信与信息工程学院面向对象技术II课程设计班级:物联网1202班姓名:杨文涛学号:指导教师:设计时间:12.29~1.4成绩:评语:通信与信息工程学院二〇一三年目录1、实验项目一4一、项目名称4创建型模式,属于基础型(工厂模式)4二、模式介绍4三、项目模式分析5(一)选择信息发送方式(抽象工厂模式)51.类图52.程序介绍53.测试结果8(二)、饮料生产(简单工厂模式)91.类图92.程序介绍93.测试结果112、实验项目二11一、项目名称11结构型模式,属于创新型11二、模式介绍12三、项目模式分析12(一)川菜师模型121.类图122.程序介绍133.测试结果15(二)学生模型151.类
2、图152.程序介绍153.测试结果183.工厂模式和适配器模式优缺点191、实验项目一一、项目名称创建型模式,属于基础型(工厂模式)二、模式介绍(1)实例一用工厂模式设计一个信息发送选择的模拟程序,采用抽象工厂模式,专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类,完成信息发送。(2)实例二用工厂模式设计一个饮料工厂的模拟程序,采用简单工厂模式,专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。它又称为静态工厂方法模式,属于类的创建型模式。 简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或
3、接口)的实例。 该模式中包含的角色及其职责 (1)工厂角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。 (2)抽象角色 简单工厂模式所创建的所有对象的父类,它负责描述所有实例所共有的公共接口。 (3)具体产品角色 简单工厂模式的创建目标,所有创建的对象都是充当这个角色的某个具体类的实例。 在这个模式中,工厂类是整个模式的关键所在。它包含必要的判断逻辑,能够根据外界给定的信息,决定究竟应该创建哪个具体类的对象。用户在使用时可以直接根据工厂类去创建所需的实例,而无需了解这些对象是如何创建以及如何组织的。有利于整个软件体系
4、结构的优化。 三、项目模式分析1.设计的目的、意义熟练掌握工厂模式的构成,并能够很好的理解并应用,可以使用工厂模式完成实验要求,提高自我动手能和编写代码能力。(一)选择信息发送方式(抽象工厂模式)1.类图2.程序介绍(1).Sender类packageywt;publicabstractclassSender{publicabstractvoidsend();}创建一个抽象类,和抽象发送方法send.(2).Mailsend,Smssend类packageywt;publicclassMailsendextendsSender{publicvoidsend(){System.out.prin
5、tln("完成用QQMail发送");}}packageywt;publicclassSmssendextendsSender{publicvoidsend(){System.out.println("完成用Sms发送");}}继承Sender类实现方法send.(3).SendFactory类packageywt;publicabstractclassSendFactory{publicabstractSendersend();}创建抽象工厂SendFactory,和抽象方法Sender。(4)MailFactory,SmsFactory类packageywt;publicclassSms
6、FactoryextendsSendFactory{publicSendersend(){returnnewSmssend();}}packageywt;publicclassMailFactoryextendsSendFactory{publicSendersend(){return(newMailsend());}}继承实现SendFactory类,子工厂完成对象的实例化。(5)Text类packageywt;importjava.util.Scanner;publicclassText{publicstaticvoidmain(String[]args){System.out.prin
7、tln("请输入发送方式:Mail——>1Sms——>2");System.out.println("你选择的是:");Scannerinput=newScanner(System.in);intsc=input.nextInt();switch(sc){case1:SendFactorymf=newMailFactory();Sendersend1=mf.send();send1.send();break;
此文档下载收益归作者所有