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");

    }

    }

    【运行截图】

  • 相关阅读:
    轻松搭建Redis缓存高可用集群
    Redis集群主从配置
    启动Redis Cluster
    MyISAM 和 InnoDB 索引的区别
    数据库面试
    如何定位php程序访问慢
    Socket技术详解
    NGINX快速入门
    nginx 并发数问题思考:worker_connections,worker_processes与 max clients
    php-fpm运行原理
  • 原文地址:https://www.cnblogs.com/ljs-666/p/8678229.html
Copyright © 2011-2022 走看看