【橋接模式】【辣椒、不辣 牛肉、豬肉 麵 組合】
/** * Description: * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> * <br/>Copyright (C), 2001-2012, 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 Peppery { String style(); }
/** * Description: * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> * <br/>Copyright (C), 2001-2012, 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 PlainStyle implements Peppery { //實現"不辣"風格的方法 public String style() { return "味道清淡,很養胃..."; } }
/** * Description: * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> * <br/>Copyright (C), 2001-2012, 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 PepperySytle implements Peppery { //實現"辣味"風格的方法 public String style() { return "辣味很重,很過癮..."; } }
/** * Description: * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> * <br/>Copyright (C), 2001-2012, 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 abstract class AbstractNoodle { //組合一個Peppery變量,用於將該維度的變化獨立出來 protected Peppery style; //每份Noodle必須組合一個Peppery對象 public AbstractNoodle(Peppery style) { this.style = style; } public abstract void eat(); }
/** * Description: * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> * <br/>Copyright (C), 2001-2012, 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 PorkyNoodle extends AbstractNoodle { public PorkyNoodle(Peppery style) { super(style); } //實現eat()抽象方法 public void eat() { System.out.println("這是一碗稍嫌油膩的豬肉麵條。" + super.style.style()); } }
/** * Description: * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> * <br/>Copyright (C), 2001-2012, 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 BeefNoodle extends AbstractNoodle { public BeefNoodle(Peppery style) { super(style); } //實現eat()抽象方法 public void eat() { System.out.println("這是一碗美味的牛肉麵條。" + super.style.style()); } }
/** * Description: * <br/>網站: <a href="https://www.crazyit.org">瘋狂Java聯盟</a> * <br/>Copyright (C), 2001-2012, 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 BeefNoodle extends AbstractNoodle { public BeefNoodle(Peppery style) { super(style); } //實現eat()抽象方法 public void eat() { System.out.println("這是一碗美味的牛肉麵條。" + super.style.style()); } }
最後更新:2017-04-04 07:03:36