命令模式

2016-05-19  本文已影响10人  keith666

Intent

Structure

Command by keith
  • 代码:
  • public class Command {
        public static void main(String[] args){
            Customer customer=new Customer();
            Waiter waiter=new Waiter();
            customer.takeOrder(waiter,new Lunch("Steak"));
            customer.takeOrder(waiter,new Lunch("Salad"));
    
            waiter.orderUp();
        }
    }
    class Customer {
        public void takeOrder(Waiter waiter, Order order) {
            waiter.addOrder(order);
        }
    }
    class Waiter {
        List<Order> orders;
    
        public Waiter() {
            orders = new ArrayList<>();
        }
    
        public void addOrder(Order order) {
            orders.add(order);
        }
        public void orderUp() {
            for (Order order : orders) {
                order.prepare();
                order.cooking();
                order.finishing();
            }
            orders.clear();
        }
    }
    interface Order {
        void prepare();
    
        void cooking();
    
        void finishing();
    }
    class Lunch implements Order {
    
        private String name;
    
        public Lunch(String name) {
            this.name = name;
        }
    
        @Override
        public void prepare() {
            System.out.println(name + " is preparing");
        }
    
        @Override
        public void cooking() {
            System.out.println(name + " is cooking");
        }
    
        @Override
        public void finishing() {
            System.out.println(name + " is finishing");
        }
    }
    
    1. Output
    Steak is preparing
    Steak is cooking
    Steak is finishing
    Salad is preparing
    Salad is cooking
    Salad is finishing
    

    Refenrence

    1. Design Patterns
    2. 设计模式
    上一篇下一篇

    猜你喜欢

    热点阅读