求一个三种设计模式结合的java小程序

请问可以帮忙运用三种及以上的设计模式写一个小程序吗😊(主要是要运用三种或者三种以上的设计模式)我现在比较感兴趣的应用场景是模拟ATM机的一些功能(报酬可以... 请问可以帮忙运用三种及以上的设计模式写一个小程序吗😊(主要是要运用三种或者三种以上的设计模式)
我现在比较感兴趣的应用场景是模拟ATM机的一些功能(报酬可以私聊,谢谢)
展开
 我来答
育知同创教育
2017-12-05 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
//##食堂:DinningHall.java
public class DinningHall{

    private DinningHall instance = null;
    private DinningHall{
    }

    public static DinningHall getInstance(){

        //单例模式:创建食堂对象
        if(instance == null){

            instance = new DinningHall();
        }

        return instance;

    }
    public Food createFood(String order){

        //工厂模式:创建一些吃的
        if("1号菜".equals(order)){

            //比如菜单上1号菜是鱼香肉丝
            return new YuXiangRouSi();
        }
        else if("2号菜".equals(order)){

            //比如菜单上2号菜是宫保鸡丁
            return new GongBaoJiDing();
        }
        else{

            return null;

        }

    }

    //建造者模式start:集中管理,生产一些吃的东西
    private List<Food> list = new ArrayList<Food>();  
    public List<Food> getFoods(){
        return list;

    }

    public void produceSomeMantou(int count){
         for(int i=0; i<count; i++){  
            list.add(new ManTou());
        }  
    }
    //建造者模式end

}
//##食物:Food.java
public interface Food(){
    public String getName();

}
//##鱼香肉丝:YuXiangRouSi.java
public class YuXiangRouSi implements Food(){
    public String getName(){
        return "鱼香肉丝";

    }
}
//##宫保鸡丁:GongBaoJiDing.java
public class GongBaoJiDing implements Food(){
    public String getName(){
        return "宫保鸡丁";

    }
}
//##馒头:Mantou.java
public class Mantou implements Food(){
    public String getName(){
        return "馒头";

    }
}
//##测试类Tester.java
public class Tester{
    public static void main(){

        //1.单例模式
        DinningHall dh = DinningHall.getInstance();
        //2.工厂模式
        Food f1 = DinningHall.createFood("1号菜");
        System.out.println(f1.getName());

        //3.建造者模式
        DinningHall.produceSomeMantou(5);
        List<Food> foods = DinningHall.getFoods();
        for(Food f : foods){

            System.out.println(foods +"\t");

        }    

        System.out.println();
    }
}
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式