装饰者模式例子
package cn.tedu.jdbc.pool; interface Phone{ public void call(); public void message(); } class Iphone implements Phone{ public void call(){ System.out.println("手机可以打电话了..."); } public void message(){ System.out.println("手机可以发短信了..."); } } class RingIphone extends Iphone{ public void call(){ System.out.println("手机可以听彩铃了..."); } } /** * 装饰类: RingIphoneDecorate * 被装饰者: iphone对象 --> (所属类) Iphone */ class RingIphoneDecorate implements Phone{ private Iphone iphone =null; /* 通过构造方法接收被装饰者 */ public RingIphoneDecorate(Iphone iphone){ this.iphone =iphone; } public void call() { // TODO Auto-generated method stub System.out.println("装饰手机可以听彩铃了..."); } public void message() { // TODO Auto-generated method stub iphone.message(); } } public class Demo { public static void main(String[] args) { // TODO Auto-generated method stub Iphone iphone =new Iphone(); iphone.call(); iphone.message(); System.out.println("==================="); Iphone ringIphone = new RingIphone(); ringIphone.call(); System.out.println("==================="); Phone ringIphoneDecorate = new RingIphoneDecorate(iphone); ringIphoneDecorate.call(); /* * 装饰模式 在IO流中的使用 * //字节流 -- 一次读一个字节 FileInputStream in = new FileInputStream(new File("")); InputStreamReader isr = new InputStreamReader(in); BufferedReader br = new BufferedReader(isr); */ } }
我希望产品经理的标准会因为我去变的更清晰
浙公网安备 33010602011771号