代码设计:设计模式:委托模式

文章目录

定义

委托,指的是调用被依赖的类的方法

类A依赖类B,一般都是A调用B的方法,但委托是B调用A的方法

类结构

委托接口

委托接口可以是独立接口,也可以是被委托类中的内部接口

定义抽象的委托方法

被委托者类

封装一个具体的方法,用于实现某个功能

创建一个委托接口的对象,调用具体的方法

持有一个委托者对象,把委托者接口对象注入委托者对象中

委托者类

持有一个委托接口对象,调用委托方法,即调用被委托者的具体的方法

类之间的关系

被委托者依赖委托者,但委托者调用被委托者的方法,这就是依赖反转(依赖注入)

代码实例

委托接口

委托接口可以是独立接口,也可以是被委托类中的内部接口

public interface Delegation {

    void delegate()
}

被委托类和委托接口

public class Deleagted {


    private Delegator delegator;

    public void method(){
        
        delegator.setDelegation(new Delegation() {

            public void delegate() {

                Delegated.this.doSomething();
            }
        })
    }

    public void doSomething() {

        ... ...
    }
}

​​​​​​​委托者类

public class Delegator {

    private Delegation delegation;

    public void setDelegation(Delegation delegation) {

        this.delegation = delegation;
    }

    public void doSomething() {

        ... ...
        delegation.delegate();
        ... ...
    }
}

总结

被委托者依赖委托者,但委托者调用被委托者的方法,这就是依赖反转(依赖注入)

相关推荐
wrx繁星点点7 小时前
状态模式(State Pattern)详解
java·开发语言·ui·设计模式·状态模式
金池尽干9 小时前
设计模式之——观察者模式
观察者模式·设计模式
也无晴也无风雨9 小时前
代码中的设计模式-策略模式
设计模式·bash·策略模式
捕鲸叉18 小时前
MVC(Model-View-Controller)模式概述
开发语言·c++·设计模式
wrx繁星点点19 小时前
享元模式:高效管理共享对象的设计模式
java·开发语言·spring·设计模式·maven·intellij-idea·享元模式
凉辰19 小时前
设计模式 策略模式 场景Vue (技术提升)
vue.js·设计模式·策略模式
菜菜-plus19 小时前
java设计模式之策略模式
java·设计模式·策略模式
暗黑起源喵19 小时前
设计模式-迭代器
设计模式
lexusv8ls600h21 小时前
微服务设计模式 - 网关路由模式(Gateway Routing Pattern)
spring boot·微服务·设计模式
sniper_fandc1 天前
抽象工厂模式
java·设计模式·抽象工厂模式