设计模式---装饰

不要去记,啥接口啥类,搞明白就记住了。也不局限你这模式。我觉得阔以实现这思想的方式都可以。不一定就记住这模式。

装饰?啥?一个类代表一个个体,个性化个体,个体里面总有代表性操作。装饰无非就是装饰他想表达的操作。装饰要是垂直装饰,很简单直接继承,想叠加就继承。那没多大意义。累。横向装饰,并且是多次的。想啥时候就给他装饰下。

我初步想到的,就是把你这个要装饰的东东给当做成员变量传到真正做装饰的主类。那调用主类,你想怎么横向设计都行。这就是套路了。当做成员属性传入,想咋玩就咋玩。想咋装饰就咋装饰。那多层嵌套呢?还是老规矩,接口解决。那这样装饰模式就出来了。成员属性,加接口(代表的一类模型)。即是装饰模式。

下面代码,implements 可以改成类YY。都可以。经典的是jdk。io流。bufferedinputstream和fileinputstream。
    interface XX{
        public void doSomething();
    }
    
    class YY implements XX{

        @Override
        public void doSomething() {
            System.out.println("YY do something.");
        }
        
    }
    
    class ZZ implements XX{
         public XX xx;
         public ZZ(XX xx){
             this.xx = xx;
         }
         public void doSomething(){
             xx.doSomething();
             System.out.println("ZZ do something.");
         }
    }
    
    class KK implements XX{
         public XX xx;
         public KK(XX xx){
             this.xx = xx;
         }
         public void doSomething(){
             xx.doSomething();
             System.out.println("KK do something.");
         }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值