zoukankan      html  css  js  c++  java
  • 抽象工厂模式

    【实验内容和要求】

    麦当劳(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");

    }

    }

    【运行截图】

  • 相关阅读:
    序列——堆排序-大根堆(堆大顶)
    3 分钟的高速体验 Apache Spark SQL
    UVa 1401 Remember the Word
    leetcode
    oracle看到用户的所有表名、表睐、字段名称、现场的目光、是空的、字段类型
    cocos2d-x物业现场
    Unable to start MySQL service. Another MySQL daemon is already running with the same UNIX socket
    ThreadPoolExecutor详解
    Java四种线程池newCachedThreadPool,newFixedThreadPool,newScheduledThreadPool,newSingleThreadExecutor
    A First Exploration Of SolrCloud
  • 原文地址:https://www.cnblogs.com/ljs-666/p/8678229.html
Copyright © 2011-2022 走看看