美文网首页
装饰模式

装饰模式

作者: 蝌蚪1573 | 来源:发表于2016-09-28 21:46 被阅读0次
Paste_Image.png

装饰步骤:
1.装饰类与被装饰类要实现同一个接口或继承同一个父类
2.在装饰类中持有一个被装饰引用
3.重写方法,进行功能增强。

Component:抽象构件 给出一个抽象接口,以规范准备接收附加责任的对象

代码实现:
public interface Component {    
            public void sampleOperation();
}

ConcreteComponent:具体构建 定义一个将要接收附加责任的类

public class ConcreteComponent implements Component {
        @Override
        public void sampleOperation() {
             // 写相关的业务代码
         }
}

Decorator:装饰角色 定义一个将要接收附加责任的类

public class Decorator implements Component{
        private Component component;
        public Decorator(Component component){
            this.component = component;
        }
        @Override
        public void sampleOperation() {
            // 委派给构件
            component.sampleOperation();
        }
}

ConcreateComponent:具体装饰 负责给构件对象“贴上”附加的责任

public class ConcreteDecoratorA extends Decorator {

        public ConcreteDecoratorA(Component component) {
            super(component);
        }
        @Override
        public void sampleOperation() {
     super.sampleOperation();
                // 写相关的业务代码
         }
}
优点 缺点
1.比静态继承更加的灵活 增加大量功能类似的小对象增加学习难度
2.增强原有功能的同时,接口一直不影响原有对象使用
3.装饰功能可以累加

相关文章

网友评论

      本文标题:装饰模式

      本文链接:https://www.haomeiwen.com/subject/pylkyttx.html