设计模式练习(4)——建造者模式

设计模式练习(4)——建造者模式
建造者模式
⼀、题⽬:
软件公司要开发⼀个视频播放软件,为了给⽤户提供⽅便,该播放软件提供了多种界⾯显⽰模式,如完整模式、精简模式、记忆模式、⽹络模式等。在不同的显⽰模式下,主界⾯的组成元素有所差异,如在完整模式下将显⽰菜单、播放列表、主窗⼝、控制条等,在精简模式下只显⽰主窗⼝和控制条,⽽在记忆模式下,将显⽰主窗⼝、控制条、收藏列表等。试⽤建造者模式设计软件。
(1)给出建造者模式等结构视图
(2)给出该实例等类图及代码实现
⼆、所⽤模式结构视图:
三、实例类图:
四、实例实现代码:
(因为区分,所以在类的前⾯加了Gj19)
复杂对象
package BuilderPattern;主控芯片
/**
* 复杂对象
* @author gong
*
*/
public class Gj19MainScreen {
public String menu;  //菜单
public String playList;  //播放列表
public String mainWindow;  //主窗⼝
public String controlBar;  //控制条
public String getMenu() {
return menu;
加勒比}
public void setMenu(String menu) {
}
public String getPlayList() {
return playList;
}
public void setPlayList(String playList) {
this.playList = playList;
}
public String getMainWindow() {
return mainWindow;
}
public void setMainWindow(String mainWindow) {
this.mainWindow = mainWindow;
}
public String getControlBar() {
return controlBar;
}
public void setControlBar(String controlBar) {
}
}
抽象建造者类
package BuilderPattern;
/**
* 抽象建造者类
* @author gong
*
*/
abstract class Gj19ModeBuilder {
protected Gj19MainScreen screen = new Gj19MainScreen();  //创建产品对象
public abstract void buildMenu();
public abstract void buildPlayList();
public abstract void buildMainWindow();
public abstract void buildControlBar();
public Gj19MainScreen getScreen()  {    //返回产品对象 --⼯⼚⽅法
return screen;
}
}
具体建造者–完整模式
* 具体建造者--完整模式
* @author gong
*
*/
public class Gj19FullModeBuilder extends Gj19ModeBuilder{
@Override
public void buildMenu() {
screen.setMenu("完整菜单");
}
@Override
public void buildPlayList() {
screen.setPlayList("完整播放列表");
}
三部六病@Override
public void buildMainWindow() {
screen.setMainWindow("完整主窗⼝");
}
@Override
public void buildControlBar() {
screen.setControlBar("完整控制条");
}
}
具体建造者–精简模式
package BuilderPattern;
/**
* 具体建造者--精简模式
* @author gong
*
*/
public class Gj19SimpleModeBuilder extends Gj19ModeBuilder{
@Override
public void buildMenu() {
screen.setMenu("精简菜单");
}
@Override
public void buildPlayList() {
screen.setPlayList("精简播放列表");
}
@Override
public void buildMainWindow() {
screen.setMainWindow("精简主窗⼝");
}
@Override
public void buildControlBar() {
screen.setControlBar("精简控制条");
}
}
指挥者类
定州英才实验中学* 指挥者类
* @author gong
*
*/
public class Gj19ScreenModeController{
private Gj19ModeBuilder mb;
public void setModeBuilder(Gj19ModeBuilder mb ){
this.mb = mb;
}
自杀的方法
public Gj19MainScreen construct(Gj19ModeBuilder mb){
Gj19MainScreen ms;
mb.buildMenu();
mb.buildPlayList();
mb.buildMainWindow();
mb.buildControlBar();
ms=  mb.getScreen();
return ms;
}
}
测试建造者模式类
package BuilderPattern;
/**
* 测试建造者模式类
* @author gong
教学模型*
*/
public class TestBuilderPattern {
public static void main(String[] args) {
Gj19ModeBuilder mb;  //针对抽象建造者编程
mb = new Gj19FullModeBuilder();  //构造完整模式界⾯
Gj19ScreenModeController smc=new Gj19ScreenModeController();
Gj19MainScreen screen;
screen = struct(mb) ;
System.out.println("菜单:"+Menu());
System.out.println("播放列表:"+PlayList());
System.out.println("主窗⼝:"+MainWindow());
System.out.println("控制条:"+ControlBar());
}
}
五、运⾏结果:

本文发布于:2024-09-22 18:19:28,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/131690.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:模式   建造   精简   软件   对象   产品   控制
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议