软件设计模式(实验三)—— 抽象工厂模式的应用(Java)

实验三 抽象工厂模式的应用 (Java实现)

一、实验目的

(1)掌握抽象工厂模式(Abstract Factory)的特点
(2)分析具体问题,使用抽象工厂模式进行设计。

二、实验内容和要求

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

三、源代码

1.AbstractFactoryTest 类

public class AbstractFactoryTest {
	public static void main(String[] args) {
		Hamburg h = null;
		Cola c = null;
		AbstractFactory af = null;
		af = new MDNFactory();
		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();
}

2.MDNFactory 类

class MDNFactory implements AbstractFactory{
	@Override
	public Hamburg createHamburg() {
		return new MDNHamburg();
	}
 
	@Override
	public Cola createCola() {
		return new MDNCola();
	}
}

3.KDJFactory 类

class KDJFactory implements AbstractFactory{
	@Override
	public Hamburg createHamburg() {
		return new KDJHamburg();
	}
	@Override
	public Cola createCola() {
		return new KDJCola();
	}
	
}

interface Hamburg{
	void getHumburg();
}

4.MDNHamburg 类

class MDNHamburg implements Hamburg{
	@Override
	public void getHumburg() {
		System.out.println("MDNHamburg");
	}
}

5.KDJHamburg 类

class KDJHamburg implements Hamburg{
	@Override
	public void getHumburg() {
		System.out.println("KDJHamburg");
	}
	
}

interface Cola{
	void getCola();
}

6.MDNCola 类

class MDNCola implements Cola{
	@Override
	public void getCola() {
		System.out.println("MDNCola");
	}	
}

7.KDJCola 类

class KDJCola implements Cola{
	@Override
	public void getCola() {
		System.out.println("KDJCola");
	}
}

四、UML图

软件设计模式(实验三)—— 抽象工厂模式的应用(Java)_第1张图片

你可能感兴趣的:(#,软件设计模式实验,java,设计模式)