委托方法 java_Java – 委托方法的正确方法

使用数据源的类应该通过接口访问它,并在构造时提供给类的正确实例.

首先,使DataSource成为一个接口:

public interface DataSource {

String getSomething();

}

现在具体实现:

public class B implements DataSource {

public String getSomething() {

//read a file, call a database whatever..

}

}

然后你的调用类看起来像这样:

public class MyThingThatNeedsData {

private DataSource ds;

public MyThingThatNeedsData(DataSource ds) {

this.ds = ds;

}

public doSomethingRequiringData() {

String something = ds.getSomething();

//do whatever with the data

}

}

您可以在代码中的其他位置实例化此类:

public class Program {

public static void main(String[] args) {

DataSource ds = new B(); //Here we've picked the concrete implementation

MyThingThatNeedsData thing = new MyThingThatNeedsData(ds); //And we pass it in

String result = thing.doSomethingThatRequiresData();

}

}

如果你想获得花哨的话,你可以使用像Spring或Guice这样的依赖注入框架来完成最后一步.

加分点:在您的单元测试中,您可以提供DataSource的模拟/存根实现,而您的客户端类将更加明智!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值