设计模式实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《代码重构与设计模式》课堂实验徐海蛟博士2016.03

实验一工厂模式的应用

【实验目的】

1)掌握工厂模式(Factory)的特点

2)分析具体问题,使用工厂模式进行设计。

【实验容和要求】

有一个OEM制造商代理做HP笔记本电脑(Laptop),后来该制造商得到了更多的品牌笔记本电脑的订单Acer、Lenovo、Dell,该OEM商发现,如果一次同时做很多个牌子的本本,有些不利于管理。利用工厂模式改善设计,用控制台应用程序实现该OEM制造商的工厂模式。该模式的UML图如下。

【模式UML图】

【模式代码(JAVA语言实现)】

public class FactoryMethod {// 主类

public static void main(String[] args) {

Computer c;

Factory f = new

DellFactory();

c = f.getComputerType();

puterType();

f = new LenovoFactory();

1

《代码重构与设计模式》课堂实验徐海蛟博士2016.03

c = f.getComputerType();

puterType();

f = new AcerFactory();

c = f.getComputerType();

puterType();

}

}

interface Factory{

Computer getComputerType();

}

class DellFactory implements Factory{

Override

public Computer getComputerType() {

return new Dell();

}

}

class AcerFactory implements Factory{

Override

public Computer getComputerType() {

return new Acer();

}

}

class LenovoFactory implements Factory{

Override

public Computer getComputerType() {

return new Lenovo();

}

}

/**

* 电脑品牌

*/

interface Computer{

public void ComputerType();

}

class Dell implements Computer{

Override

public void ComputerType() {

// TODO Auto‐generated method stub

2

《代码重构与设计模式》课堂实验徐海蛟博士2016.03

System.out.println("Dell Computer");

}

}

class Acer implements Computer{

Override

public void ComputerType() {

System.out.println("Acer Computer");

}

}

class Lenovo implements Computer{

Override

public void ComputerType() {

// TODO Auto‐generated method stub

System.out.println("Lenovo Computer");

}

}

【运行截图】

【实验小结】

通过本次实验,学会了使用工厂方法模式。工厂方法模式的适用性如下:当一个类不知道它所必须创建的对象的类时。

当一个类希望由它的子类来指定它所创建的对象时。

当类将创建对象的职责委托给多个帮助子类中的某一个,并且希望将哪一个帮助子类是代理这一信息局部化时。

3

《代码重构与设计模式》课堂实验徐海蛟博士2016.03

实验二抽象工厂模式的应用

【实验目的】

1)掌握抽象工厂模式(Abstract Factory)的特点

2)分析具体问题,使用抽象工厂模式进行设计。

【实验容和要求】

麦当劳(McDonalds)和肯德基(KFC)快餐店都经营汉堡(Hamburg)和可乐(Cola),用JAVA控制台应用程序实现这两个快餐店经营产品的抽象工厂模式。该模式的UML图如下。

【模式 UML 图】

【模式代码】

public class AbstractFactoryTest {

public static void main(String[] args) {

Hamburg h;

Cola c;

AbstractFactory af = new MDNFactory();

4

《代码重构与设计模式》课堂实验徐海蛟博士2016.03

h = af.createHamburg();

c = af.createCola();

h.getHumburg();

c.getCola();

af = new KDJFactory();

h = af.createHamburg();

c = af.createCola();

h.getHumburg();

c.getCola();

}

}

interface AbstractFactory{

Hamburg createHamburg();

Cola createCola();

}

class MDNFactory implements AbstractFactory {

Override

public Hamburg createHamburg() {

return new MDNHamburg();

}

Override

public Cola createCola() {

return new MDNCola();

}

}

class KDJFactory implements AbstractFactory{

Override

public Hamburg createHamburg() {

return new KDJHamburg();

}

Override

public Cola createCola() {

return new KDJCola();

}

}

/**

* kDJ &MDN

*/

相关文档
最新文档