取决于接口而不是框架服务

时间:2018-09-24 22:00:49

标签: php oop design-patterns interface

例如,我使用SomeFramework来处理{/ 1}}来处理控制器/动作。我想写mechanism的某些方法取决于当前动作名称

很明显,我可以在MyService提供的MyService上的MechanismInterface中建立关系。

但是如果我创建一个接口SomeFramework及其实现ActionResolver会更好吗?

SomeFrameworkActionResolver将取决于SomeFrameworkActionResolver,但是MechanismInterface将取决于MyService接口。

1 个答案:

答案 0 :(得分:0)

  

我可以在MyService提供的MechanismInterface上的SomeFramework中建立关系。

这是不好的,因为MechanismInterface仍属于SomeFramework程序包,因此MyService仍然直接 依赖于SomeFramework程序包。

  

如果我创建一个接口ActionResolver及其实现SomeFrameworkActionResolver会更好吗?

是的,这要好得多。只需将ActionResolver接口与MyService属于同一个包,并将SomeFrameworkActionResolver属于另一个包。现在MyServiceSomeFramework已完全解耦。当您必须使用新的SomeFramework2时,MyService软件包将保持稳定。