裝飾器模式(Decorator Pattern)容許向一個現有的對象添加新的功能,同時又不改變其結構。這種類型的設計模式屬於結構型模式,它是做爲現有的類的一個包裝。java
這種模式建立了一個裝飾類,用來包裝原有的類,並在保持類方法簽名完整性的前提下,提供了額外的功能。咱們經過下面的實例來演示裝飾器模式的用法。其中,咱們將把一個形狀裝飾上不一樣的顏色,同時又不改變形狀類。設計模式
package com.cyb.ssm.design_pattern.decorate; public interface Iphone { void call(); }
package com.cyb.ssm.design_pattern.decorate; public class Iphone6 implements Iphone{ @Override public void call() { System.out.println("使用iphone6打電話,性能槓槓滴"); } }
package com.cyb.ssm.design_pattern.decorate; /** * 裝飾類 * * @author apple * */ public class IphoneDecorate implements Iphone { private Iphone Iphone; public IphoneDecorate(Iphone iphone) { super(); this.Iphone = iphone; } @Override public void call() { System.out.println("人猿泰山music。。。"); Iphone.call(); } }
package com.cyb.ssm.design_pattern.decorate; import org.junit.Test; public class TestDecorate { @Test public void test() { Iphone iphone=new IphoneDecorate(new Iphone6()); iphone.call(); } }