设计模式----建造者模式

(1)

 

//器皿

public interface  Take {
  public String take();
}

public class Dish implements Take{

 @Override
    public String take() {
        return "盘子";
    }
}

public class Bowl  implements Take{
    @Override
    public String take() {
        return "碗";
    }
}

public class Cup implements Take{
    @Override
    public String take() {
        return "杯子";
    }
}

//食物 

public interface Food {
    public String name();
    public Take take();
    public int time();
}

public abstract class SmallFood  implements Food{
    @Override
    public Take take() {
        return new Bowl();
    }

   @Override
    public abstract int time();
}

public abstract class BigFood implements Food {
    @Override
    public Take take() {
        return new Dish();
    }
    @Override
    public abstract int time();
}

public abstract class Drink implements Food{
    @Override
    public Take take() {
        return new Cup();
    }
    @Override
    public abstract int time();
}

//具体

public class Fish extends BigFood{

    @Override
    public String name() {
        return "fish";
    }

    @Override
    public int time() {
        return 2;
    }

}

public class Milk  extends Drink{
    @Override
    public String name() {
        return "milk";
    }
    @Override
    public int time() {
        return 1;
    }
}

public class Rice  extends SmallFood{
    @Override
    public String name() {
        return "rice";
    }    
    public int time() {
        return 3;
    }
}

//计算

import java.util.ArrayList;
import java.util.List;

public class ALLTime {

    private List<Food> list=new ArrayList<Food>();
    public void add(Food food){
        list.add(food);
    }
    public int allTime(){
        int time=0;
        for (Food food : list) {
            time+=food.time();
        }
        return time;
    }
    public String showFood(){
        String s="";
        for (Food food : list) {
            s=s+"菜名:"+food.name()+";器皿:"+food.take().take()+";时间:"+food.time()+"\n";
        }
        return s;
    }
}

//一桌晚饭

public class Dinner {

    public ALLTime dinner(){
        ALLTime t=new ALLTime();
        t.add(new Fish());
        t.add(new Milk());
        t.add(new Rice());
        return t;
    }
}

//检验

public class main {
    public static void main(String[] args){
        Dinner d=new Dinner();
        ALLTime a=d.dinner();
        System.out.println(a.showFood()+"总时间"+a.allTime());
    }
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值