zoukankan      html  css  js  c++  java
  • 吴裕雄--天生自然轻量级JAVA EE企业应用开发Struts2Sping4Hibernate整合开发学习笔记:企业应用开发的思考和策略_Facade

    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public interface Cook
    {
        // 模拟烹调食物的方法
        String cook(String food);
    }
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class CookImpl
        implements Cook
    {
        // 实现模拟烹调食物的方法
        public String cook(String food)
        {
            System.out.println("厨师正在烹调:" + food);
            return food;
        }
    }
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class Customer
    {
        public void haveDinner()
        {
    //        // 依次创建三个部门实例
    //        Payment pay = new PaymentImpl();
    //        Cook cook = new CookImpl();
    //        Waiter waiter = new WaiterImpl();
    //        // 依次调用三个部门实例的方法来实现用餐功能
    //        String food = pay.pay();
    //        food = cook.cook(food);
    //        waiter.serve(food);
            // 直接依赖于Facade类来实现用餐方法
            Facade f = new Facade();
            f.serveFood();
        }
        public static void main(String[] args)
        {
            new Customer().haveDinner();
        }
    }
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class Facade
    {
    	// 定义被Facade封装的三个部门
    	Payment pay;
    	Cook cook;
    	Waiter waiter;
    	// 构造器
    	public Facade()
    	{
    		this.pay = new PaymentImpl();
    		this.cook = new CookImpl();
    		this.waiter = new WaiterImpl();
    	}
    	public void serveFood()
    	{
    		// 依次调用三个部门的方法,封装成一个serveFood()方法
    		String food = pay.pay();
    		food = cook.cook(food);
    		waiter.serve(food);
    	}
    }
    

      

    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public interface Payment
    {
        // 模拟顾客支付费用的方法
        String pay();
    }
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class PaymentImpl
    	implements Payment
    {
    	// 实现模拟顾客支付费用的方法
    	public String pay()
    	{
    		String food = "快餐";
    		System.out.println("你已经向收银员支付了费用,您购买的食物是:"
    			+ food);
    		return food;
    	}
    }
    

      

    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public interface Waiter
    {
        // 模拟服务生上菜的方法
        void serve(String food);
    }
    /**
     * Description:
     * <br/>网站: <a href="http://www.crazyit.org">疯狂Java联盟</a>
     * <br/>Copyright (C), 2001-2016, Yeeku.H.Lee
     * <br/>This program is protected by copyright laws.
     * <br/>Program Name:
     * <br/>Date:
     * @author  Yeeku.H.Lee kongyeeku@163.com
     * @version  1.0
     */
    public class WaiterImpl
        implements Waiter
    {
        // 模拟服务生上菜的方法
        public void serve(String food)
        {
            System.out.println("服务生已将" + food
                + "端过来了,请慢用...");
        }
    }
  • 相关阅读:
    盒子模型之边框border
    CSS优先级特性之权重叠加
    CSS三大特性:层叠性、继承性、优先级
    行高
    单行文本垂直居中
    !important
    【DP专题】——[USACO13OPEN]照片Photo
    1:n Oberserver模式
    025_递归算法详解
    字符串移动问题
  • 原文地址:https://www.cnblogs.com/tszr/p/12373121.html
Copyright © 2011-2022 走看看