生成器模式实验报告
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
}
import javax.swing.*; public class Director{ private Builder builder; Director(Builder builder){ this.builder=builder;
} public JPanel constructProduct(){ builder.buildButton(); builder.buildLabel(); builder.buildTextField(); JPanel product=builder.getPanel(); return product; } }
一、 实验内容:
教师签名: 年
月
日
实验步骤: (算法描述、源程序、操作步骤和方法) import javax.swing.*; public class Application{ public static void main(String args[]){ Builder builder=new ConcreteBuilderOne(); Director director=new Director(builder); JPanel panel=director.constructProduct(); JFrame frameOne=new JFrame(); frameOne.add(panel); frameOne.setBounds(12,12,200,120); frameOne.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frameOne.setVisible(true); builder=new ConcreteBuilderTwo(); director=new Director(builder); panel=director.constructProduct(); JFrame frameTwo=new JFrame(); frameTwo.add(panel); frameTwo.setBounds(212,12,200,120); frameTwo.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); frameTwo.setVisible(true); }
}
import javax.swing.*; public interface Builder{ public abstract void buildButton(); public abstract void buildLabel(); public abstract void buildTextField(); public abstract JPanel getPanel(); }
import javax.swing.*; public class ConcreteBuilderTwo implements Builder{ private PanelProduct panel; ConcreteBuilderTwo(){ panel=new PanelProduct(); } public void buildButton(){ panel.button=new JButton("button"); //需要创建sXP Jave 标准环境
通过一系列的实验尝试,不能很好的写出代码,不过从老师的讲解中, 受益不少 ,在今后更应该自己先尝试写代码,做后就有进步。 实验目的与要求:初步了解模式的含义,掌握模式的模型图,弄清模式的 适用条件和优点。达到逐步灵活应用的目的。
签名: 2013 年 评语与成绩: 4 月 23 日
import javax.swing.*; public class PanelProduct extends JPanel{ JButton button; JLabel label; JTextField textField; }
测试过程: (实验中出现的问题、错误、解决方法)
问题: 不知道实验室干嘛呢,老师给的实验指导书看不懂,编程无从下手。 解决方法: 通过老师的讲解,和同学们的讨论,再加上老师给的做题分析步骤,慢慢的 熟悉设计模式的实验方式。
洛阳师范学院信息技术学院 软件实验报告
专业: 软件工程 学号: 实验名称 实验类型 验证型 姓名: 课程: 设计模式 班级:10 软件工程 生成器模式 实验时间 2013 年 4 月 23 日
import javax.swing.*; public class ConcreteBuilderOne implements Builder{ private PanelProduct panel; ConcreteBuilderOne(){ panel=new PanelProduct(); } public void buildButton(){ panel.button=new JButton("按钮"); } public void buildLabel(){ bel=new JLabel("标签"); //需要创建的容器
} public void buildLabel(){ bel=new JLabel("label"); } public void buildTextField(){ panel.textField=new JTextField("textField"); } public JPanel getPanel(){ panel.add(panel.textField);//与 ConcreteBuilderOne 添加组 件的顺序的不同 panel.add(bel); panel.add(panel.button); return panel;
} public void buildTextField(){ panel.textField=new JTextField("文本框"); } public JPanel getPanel(){ panel.add(panel.button); //与 ConcreteBuilderTwo 添加组件 的顺序的不同 panel.add(bel); panel.add(panel.textField); return panel; } }