美文网首页
装饰器模式(Decorator Pattern):简单&

装饰器模式(Decorator Pattern):简单&

作者: Linhaojian | 来源:发表于2018-11-13 12:10 被阅读24次

    1.前言


    2.目录

    模式目录.png

    3.含义

    为一个现有对象添加额外的功能。就增加对象功能来说,装饰模式比生成子类实现更为灵活。


    4.解决

    1.在一个类在扩展功能时,如果通过继承的方式扩展,随着功能增加越来越多时,就会导致子类爆炸。


    5.原理

    通过 【装饰器】这个中介,把 “现有对象功能” 与 “新添的额外功能” 分离 。

    5.1 装饰器模式结构

    装饰器结构1.png

    5.2 结构分析

    Subject:定义需要装饰的功能。
    ConcrateSubject:负责实现功能。
    Decorator:定义抽象装饰类。
    ConcrateDecoratorA:负责实现具体的扩展功能。
    ConcrateDecoratorB:负责实现具体的扩展功能。

    5.3 实例(用户使用习惯的埋点)

    • 通常网络请求时,很多时候需要记录用户的操作等相关信息,方便后期业务扩展。(例如:支付宝中会把用户使用次数最多的功能放置最近使用的第一位置。)

    Request

    public interface Request {
        void get();
    }
    

    HuaBeiRequest

    public class HuaBeiRequest implements Request {
        @Override
        public void get() {
            System.out.print("跳转至花呗界面");
        }
    }
    

    Decorator

    public abstract class Decorator implements Request {
        protected Request request;
        public Decorator(Request request){
            this.request = request;
        }
        public void get(){
            request.get();
        }
    }
    

    LogDecorator

    public class LogDecorator extends Decorator {
        public LogDecorator(Request request) {
            super(request);
        }
        @Override
        public void get() {
            super.get();
            log();
        }
        private void log(){
            System.out.print("记录用户使用次数");
        }
    }
    

    6.优点

    1.装饰模式与继承关系的目的都是要扩展对象的功能,但是装饰模式可以提供比继承更多的灵活性。
    2.装饰类和被装饰类可以独立发展,不会相互耦合,装饰模式是继承的一个替代模式,装饰模式可以动态扩展一个实现类的功能。


    7.缺点

    1. 多层装饰比较复杂。

    8.总结

    • 到此, 装饰器模式 就解析完毕,后续我会把上述 三大类型模式 下的各子模式进行解析分享,
      请继续关注linhaojian_简书
    • 如果喜欢我的分享,可以点击 关注 或者 ,你们支持是我分享的最大动力 。
    • linhaojian的Github

    欢迎关注linhaojian_CSDN博客或者linhaojian_简书

    不定期分享关于安卓开发的干货。

    设计模式(Design pattern):简单&粗暴解析
    单例模式(Singleton Pattern):简单&粗暴解析
    简单工厂模式(Easy Factory Pattern):简单&粗暴解析
    工厂模式(Factory Pattern):简单&粗暴解析):简单&粗暴解析
    抽象工厂模式(Abstract Factory Pattern):简单&粗暴解析
    建造者模式(Builder Pattern):简单&粗暴解析
    代理模式(Proxy Pattern):简单&粗暴解析
    装饰器模式(Decorator Pattern):简单&粗暴解析
    外观模式(Facade Pattern):简单&粗暴解析
    享元模式(Flyweight Pattern):简单&粗暴解析
    观察者模式(Observe Pattern):简单&粗暴解析
    策略模式(Strategy attern):简单&粗暴解析


    写技术文章初心

    • 技术知识积累
    • 技术知识巩固
    • 技术知识分享
    • 技术知识交流

    相关文章

      网友评论

          本文标题:装饰器模式(Decorator Pattern):简单&

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