抽象工厂模式

【实验内容和要求】

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

模式UML

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

//主函数

import java.util.Scanner;

public class AbstractFactory {

public static void main(String arg[])

{

Scanner input=new Scanner(System.in);

System.out.println("1:KFC  2:McDonalds");

int a=input.nextInt();

Hamburg h;

Cole c;

if(a==1)

{

Creator af=new KFCFactory();

System.out.println("1:Hamburg  2:Cole");

int b=input.nextInt();

if(b==1)

{

h=af.createHamburg();

h.getHamburg();

}else{

c=af.createCole();

c.getCole();

}

}else if(a==2)

{

Creator af=new McFactory();

System.out.println("1:Hamburg  2:Cole");

int b=input.nextInt();

if(b==1)

{

h=af.createHamburg();

h.getHamburg();

}else{

c=af.createCole();

c.getCole();

}

}

}

}

//工厂类

public interface Creator {

Hamburg createHamburg();

Cole createCole();

}

public class KFCFactory implements Creator {

@Override

public Hamburg createHamburg() {

// TODO Auto-generated method stub

return new KFCHamburg();

}

@Override

public Cole createCole() {

// TODO Auto-generated method stub

return new KFCCole();

}

}

public class McFactory implements Creator {

@Override

public Hamburg createHamburg() {

// TODO Auto-generated method stub

return new McHamburg();

}

@Override

public Cole createCole() {

// TODO Auto-generated method stub

return new McCole();

}

}

//产品类

public interface Cole {

public void getCole();

}

public class KFCCole implements Cole {

@Override

public void getCole() {

// TODO Auto-generated method stub

System.out.println("KFCCole");

}

}

public class McCole implements Cole {

@Override

public void getCole() {

// TODO Auto-generated method stub

System.out.println("McCole");

}

}

public interface Hamburg {

public void getHamburg();

}

public class KFCHamburg implements Hamburg {

@Override

public void getHamburg() {

// TODO Auto-generated method stub

System.out.println("KFCHamburg");

}

}

public class McHamburg implements Hamburg {

@Override

public void getHamburg() {

// TODO Auto-generated method stub

System.out.println("McHamburg");

}

}

【运行截图】

原文地址:https://www.cnblogs.com/ljs-666/p/8678229.html