假设类Foo需要注入类Bar。我应该输入方法参数,因为我知道Bar需要什么,或者我不应该输入它,以防Bar在将来发生变化?
class Foo {
public function __construct( Bar $bar ) {
// do something
}
}或者:
class Foo {
public function __construct( $bar ) {
// do something
// the wrong class could be passed in here, but I'm also future-proof in case
// another class provides similar functionality to Bar
}
}大概,“最好”的答案是让Bar实现一个接口,但我真的觉得创建一个在可预见的未来只有一个扩展类的接口很愚蠢。最佳实践是什么?
发布于 2010-12-18 02:46:16
简单易用的解决方案是:先将类型提示转换为Bar,然后创建一个接口,然后更改类型提示。如果您正确地使用了重构实践,并且很好地设计了您的代码,那么以后的更改应该不会有任何影响。
https://stackoverflow.com/questions/4473744
复制相似问题