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

文章目录

定义

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

类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();
        ... ...
    }
}

总结

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

相关推荐
大飞pkz2 小时前
【设计模式】C#反射实现抽象工厂模式
设计模式·c#·抽象工厂模式·c#反射·c#反射实现抽象工厂模式
努力也学不会java2 小时前
【设计模式】抽象工厂模式
java·设计模式·oracle·抽象工厂模式
青草地溪水旁2 小时前
设计模式(C++)详解—抽象工厂模式 (Abstract Factory)(2)
c++·设计模式·抽象工厂模式
青草地溪水旁2 小时前
设计模式(C++)详解—抽象工厂模式 (Abstract Factory)(1)
c++·设计模式·抽象工厂模式
Magnetic_h12 小时前
【iOS】设计模式复习
笔记·学习·ios·设计模式·objective-c·cocoa
A阳俊yi13 小时前
设计模式——结构型模式
设计模式
努力也学不会java20 小时前
【设计模式】状态模式
java·设计模式·状态模式
.豆鲨包20 小时前
【设计模式】单例模式
java·单例模式·设计模式
lpfasd1231 天前
第2课:Agent系统架构与设计模式
设计模式·系统架构
青草地溪水旁1 天前
设计模式(C++)详解—原型模式(1)
c++·设计模式·原型模式