设计模式 Day08 桥接模式、装饰模式

2021-03-04  本文已影响0人  望穿秋水小作坊
1. 如何判断你已经掌握了某种设计模式?(非常重要)

一、处理多维度变化----桥接模式

1. 这个模式的意图是什么?它解决了什么问题、什么时候可以使用它
2. 它是如何解决的?掌握它的结构图,记住它的关键代码
image.png
interface Implementor {
    public void operationImpl();
}
abstract class Abstraction {
    protected Implementor impl; //定义实现类接口对象
    
    public void setImpl(Implementor impl) {
        this.impl=impl;
    }
    
    public abstract void operation();  //声明抽象业务方法
}
class RefinedAbstraction extends Abstraction {
    public void operation() {
        //业务代码
        impl.operationImpl();  //调用实现类的方法
        //业务代码
    }
}
3. 至少能够想到它的两个应用实例,一个生活中,一个软件中的
4. 桥接模式的主要缺点如下:

二、动态扩展系统功能----装饰模式

1. 这个设计模式的意图是什么?它解决了什么问题、什么时候可以使用它

2. 它是如何解决的?掌握它的结构图,记住它的关键代码

image.png
class Decorator implements Component

{

       private Component component;  //维持一个对抽象构件对象的引用

       public Decorator(Component component)  //注入一个抽象构件类型的对象

       {

              this.component=component;

       }

 

       public void operation()

       {

              component.operation();  //调用原有业务方法

       }

}
class ConcreteDecorator extends Decorator

{

       public ConcreteDecorator(Component  component)

       {

              super(component);

       }

 

       public void operation()

       {

              super.operation();  //调用原有业务方法

              addedBehavior();  //调用新增业务方法

       }

 

     //新增业务方法

       public  void addedBehavior()

       {    

         ……

}

}

3. 至少能够想到它的两个应用实例,一个生活中的,一个软件中的

4. 这个模式的缺点是什么?在使用时要注意什么

上一篇 下一篇

猜你喜欢

热点阅读