这是一个偏好问题,但我想知道人们在组织应用程序的目录树以管理类和子类时更喜欢什么。
给定文件名=类名
Foo.php
Foo/Bar.php
//扩展Foo
Foo/Bar/Baz.php
//扩展Foo\Bar
Post.php
Post/Media.php
- 扩展Post
Post/Media/Image.php
- 扩展Post\Media
Post/Media/Audio.php
- 扩展Post\Media
Foo.php
BarFoo.php
BazBarFoo.php
Post.php
MediaPost.php
- 扩展Post
ImageMediaPost.php
- 扩展MediaPost
AudioMediaPost.php
- 扩展MediaPost
请分享您的想法。
答案 0 :(得分:4)
一般来说,子类化是一种反模式。它将类紧密地耦合在一起,并且可能导致一些难以维护的代码。拥有带控制反转的干净界面更为合适。然后,您将获得完成一项工作的小型组件,以及一项工作。我会回答你的问题,但我需要告诉你为什么我这么想:
如果你经常使用子类,那就会产生巨大的耦合。在文件系统中表示耦合也是另一层,这将使以后修改代码变得非常困难。 基于类/接口职责的命名空间和包装已被证明是对我而言的最佳方式。
关于如何思考责任,这是一篇很好的文章:http://blog.8thlight.com/uncle-bob/2014/05/08/SingleReponsibilityPrinciple.html