南华大学软件设计模式实验Word文档下载推荐.docx

上传人:b****7 文档编号:22614009 上传时间:2023-02-04 格式:DOCX 页数:27 大小:216.25KB
下载 相关 举报
南华大学软件设计模式实验Word文档下载推荐.docx_第1页
第1页 / 共27页
南华大学软件设计模式实验Word文档下载推荐.docx_第2页
第2页 / 共27页
南华大学软件设计模式实验Word文档下载推荐.docx_第3页
第3页 / 共27页
南华大学软件设计模式实验Word文档下载推荐.docx_第4页
第4页 / 共27页
南华大学软件设计模式实验Word文档下载推荐.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

南华大学软件设计模式实验Word文档下载推荐.docx

《南华大学软件设计模式实验Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《南华大学软件设计模式实验Word文档下载推荐.docx(27页珍藏版)》请在冰豆网上搜索。

南华大学软件设计模式实验Word文档下载推荐.docx

lrz0101Person

packagecom.bluesky;

publicclasslrz0101Person{

publicvoidplay(){

System.out.println("

我还是一坨泥巴,女娲还没有构造我!

"

);

}

}

简单工厂类:

lrz0101NvWa

publicclasslrz0101NvWa{

publiclrz0101PersonmadeMan(Strings){

lrz0101Personperson=null;

switch(s){

case"

M"

:

person=newlrz0101Man();

break;

W"

person=newlrz0101Woman();

R"

person=newlrz0101Robot();

default:

System.out.println("

Sorry,女娲暂时没有造这种人的能力"

person=newlrz0101Person();

}

returnperson;

子类1:

lrz0101Man

publicclasslrz0101Manextendslrz0101Person{

System.out.println("

大家好,我是男人!

我来自地球!

子类2:

lrz0101Woman

publicclasslrz0101Womanextendslrz0101Person{

大家好,我是女人!

我来自水星!

lrz0101Robot

publicclasslrz0101Robotextendslrz0101Person{

大家好,我是机器人!

我来未知星球!

1.5运行结果

2工厂模式

2.1作业题目

现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器ImgReader,如gif图片读取器GifReader用于读取gif格式的图片,jpg图片读取器JPGReader用于读取jpg格式的图片。

图片读取器对象通过图片读取器工厂ImgReaderFactory来创建。

ImgReaderFactory是一个抽象类,用于定义创建图片读取器的工厂方法,其GifReaderFactory和JPGReaderFactory用于创建具体的图片读取器对象。

使用工厂方法模式,实现该程序的设计。

(1)绘制工厂模式结构视图

(2)

给出实例类图并实现代码。

2.2所用模式结构视图

2.3实例类图

2.4实例实现代码

图片读取工厂类:

lrz0101ImageReaderFactory

packagecom.bluesky1;

publicclasslrz0101ImageReaderFactory{

publiclrz0101ImageReaderFactoryproductReaderFactory(Strings){

lrz0101ImageReaderFactoryreader=null;

if(s.equals("

JPG"

)){

reader=newlrz0101JpgReaderFactory();

elseif(s.equals("

GIF"

reader=newlrz0101GifReaderFactory();

else{

reader=newlrz0101ImageReaderFactory();

}

returnreader;

Jpg图片读取工厂类:

lrz0101JpgReaderFactory

publicclasslrz0101JpgReaderFactoryextendslrz0101ImageReaderFactory{

publiclrz0101ImageReaderproductImageReader(){

lrz0101ImageReaderiread=newlrz0101GifReader();

returniread;

Gif图片读取工厂类:

publicclasslrz0101GifReaderFactoryextendslrz0101ImageReaderFactory{

publiclrz0101ImageReaderproductImageReader(){

图片读取器类:

lrz0101ImageReader

publicclasslrz0101ImageReader{

publicvoidreadImage(){

Jpg图片读取器类:

lrz0101JpgReader

publicclasslrz0101JpgReaderextendslrz0101ImageReader{

lrz0101ImageReaderiread=newlrz0101JpgReader();

Gif图片读取器类:

lrz0101GifReader

publicclasslrz0101GifReaderextendslrz0101ImageReader{

ReadGIFImage"

测试类:

Test

publicclasslrz0101Test{

publicstaticvoidmain(String[]args){

lrz0101Testtest=newlrz0101Test();

lrz0101ImageReaderFactoryirf=newlrz0101ImageReaderFactory();

lrz0101ImageReaderFactory

ir=irf.productReaderFactory("

lrz0101ImageReaderFactoryir1=irf.productReaderFactory("

lrz0101ImageReaderFactoryir2=irf.productReaderFactory("

PNG"

piti(ir);

piti(ir1);

piti(ir2);

publicstaticvoidcompiti(lrz0101ImageReaderFactoryir){

if(irinstanceoflrz0101JpgReaderFactory){

ir=(lrz0101JpgReaderFactory)ir;

lrz0101ImageReaderireader=((lrz0101JpgReaderFactory)ir).productImageReader();

ireader.readImage();

}elseif(irinstanceoflrz0101GifReaderFactory){

ir=(lrz0101GifReaderFactory)ir;

lrz0101ImageReaderireader=((lrz0101GifReaderFactory)ir).productImageReader();

}else{

无法读取该类型的图片格式"

2.5运行结果

3抽象工厂模式

3.1作业题目

某软件公司要推出一款新的手机游戏软件,该软件支持IOS、Android和WindowsPhone等多个智能手机操作系统平台,针对不同的手机操作系统,该游戏软件提供了不同的游戏操作控制类(OperatioinController)游戏界面控制类(InterfaceController),并提供的相应的工厂类来封装这些类的初始化过程。

该软件要求具有较好的扩展性,以支持新的操作系统平台,为了满足上述要求,试采用抽象工厂模式对其进行设计。

(1)绘制抽象工厂模式结构视图;

3.2所用模式结构视图

3.3实例类图

3.4实例实现代码

操作系统父类:

lrz0101OperatingSystem

packagecom.bluesky4;

publicclasslrz0101OperatingSystem{

publiclrz0101GameControllergc;

publiclrz0101GameUiControllerguic;

publiclrz0101GameControllergetGameCtroller(){

returngc;

publiclrz0101GameUiControllergetGameUiController(){

returnguic;

游戏控制父类:

lrz0101GameController

publicclasslrz0101GameController{

游戏控制加载中。

游戏界面控制父类:

lrz0101GameUiController

publicclasslrz0101GameUiController{

publicvoidshowUI(){

界面加载中。

IOS工厂类:

lrz0101IosSystem

publicclasslrz0101IosSystemextendslrz0101OperatingSystem{

this.gc=newlrz0101IosGameController();

returnthis.gc;

this.guic=newlrz0101IosUiController();

returnthis.guic;

Android工厂类:

lrz0101AndroidSystem

publicclasslrz0101AndroidSystemextendslrz0101OperatingSystem{

this.gc=newlrz0101AndroidGameControlller();

this.guic=newlrz0101AndroidUiController();

Windows工厂类:

lrz0101WindowsSystem

publicclasslrz0101WindowsSystemextendslrz0101OperatingSystem{

this.gc=newlrz0101WindowsGameController();

this.guic=newlrz0101WindoswUiController();

IOS游戏控制类:

lrz0101IosGameController

publicclasslrz0101IosGameControllerextendslrz0101GameController{

IOS游戏控制加载中......"

IOS游戏界面控制类:

lrz0101IosUiController

publicclasslrz0101IosUiControllerextendslrz0101GameUiController{

IOS游戏界面加载中......"

publicvoidp(){

Hello"

Android游戏控制类:

lrz0101AndroidGameControlller

publicclasslrz0101AndroidGameControlllerextendslrz0101GameController{

Android游戏控制加载中......"

Android游戏界面控制类:

publicclasslrz0101AndroidUiControllerextendslrz0101GameUiController{

Android游戏界面加载中......"

Windows游戏控制类:

lrz0101WindowsGameController

publicclasslrz0101WindowsGameControllerextendslrz0101GameController{

Windows游戏控制加载中......"

Windows游戏界面控制类:

lrz0101WindoswUiController

publicclasslrz0101WindoswUiControllerextendslrz0101GameUiController{

Windows游戏界面加载中......"

lrz0101Test

publicstaticvoidmain(String[]args){

lrz0101Testtest=newlrz0101Test();

lrz0101OperatingSystemios=newlrz0101IosSystem();

lrz0101OperatingSystemandroid=newlrz0101AndroidSystem();

lrz0101OperatingSystemwindows=newlrz0101WindowsSystem();

test.show(ios);

System.out.println();

test.show(android);

test.show(windows);

publicstaticvoidshow(lrz0101OperatingSystemios){

lrz0101OperatingSystemos;

lrz0101GameControlleriosgc;

lrz0101GameUiControlleriosuic;

iosgc=ios.getGameCtroller();

iosuic=ios.getGameUiController();

iosgc.play();

iosuic.showUI();

3.5运行结果

4建造者模式

4.1作业题目

某软件公司要开发一个视频播放软件,为了给用户提供方便,该播放软件提供了多种界面显示模式,如完整模式、精简模式、记忆模式、网络模式等。

在不同的显示模式下,主界面的组成元素有所差异,如在完整模式下将显示菜单、播放列表、主窗口、控制条等,在精简模式下只显示主窗口和控制条,而在记忆模式下,将显示主窗口、控制条、收藏列表等。

试用建造者模式设计软件。

(1)给出建造者模式等结构视图

(2)给出该实例等类图及代码实现

4.2所用模式结构视图

4.3实例类图

4.4实例实现代码

主窗口类:

lrz0101MainScreen

packagecom.bluesky3;

publicclasslrz0101MainScreen{

publicStringmenu;

publicStringplayList;

publicStringmainWindow;

publicStringcontrolBar;

模式建造类:

lrz0101ModelBulider

packagecom.bluesky3;

publicclasslrz0101ModelBulider{

protectedlrz0101MainScreenscreen=newlrz0101MainScreen();

publicvoidbuildMenu(){

publicvoidbuildPlayList(){

publicvoidbuildMainWindow(){

publicvoidbuildControlBar(){

}

publiclrz0101MainScreengetScreen(){

returnscreen;

模式控制类:

lrz0101ModelController

publicclasslrz0101ModelController{

privatelrz0101ModelBulidermb;

publicvoidsetModeBuilder(lrz0101ModelBulidermb){

this.mb=mb;

publiclrz0101MainScreenconstruct(){

mb.buildControlBar();

mb.buildMainWindow();

mb.buildPlayList();

mb.buildMenu();

mb.getScreen();

returnmb.getScreen();

完整显示类:

lrz0101FullStyle

publicclasslrz0101FullStyleextendslrz0101ModelBulider{

publicvoidbuildMenu(){

screen.menu="

菜单栏显示"

;

publicvoidbuildPlayList(){

screen.playList="

播放列表显示"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1