哪个是命名命名空间和类的最佳方式
Posted
技术标签:
【中文标题】哪个是命名命名空间和类的最佳方式【英文标题】:Which is the best way to name namespace and class 【发布时间】:2012-01-25 14:52:41 【问题描述】:1) 具有类 "Model"
的命名空间 "Domain\Customer"namespace MyDomain\Customer;
class Model
class Repository
namespace MyDomain\City;
class Model
class Repository
2) 具有类 "CustomerModel" 的命名空间 "MyDomain" ?
namespace MyDomain;
class CustomerModel
class CustomerRepository
namespace MyDomain;
class CityModel
class CityRepository
3) 具有类 "CustomerModel" 的命名空间 "MyDomain\Customer" ?
namespace MyDomain\Customer;
class CustomerModel
class CustomerRepository
namespace MyDomain\City;
class CityModel
class CityRepository
或者...
我们当前的环境使用 php 自动加载函数,以这种方式包含文件
$o = new MyDomain\Customer\Model.php
将加载文件
MyDomain\Customer\Model.php
实际上,在我工作的地方,我们使用示例 #1,该示例导致所有文件都被命名为 Model.php。如果不查看 Eclipse IDE 中的完整路径,就很难知道打开了什么模型。
【问题讨论】:
【参考方案1】:类名应该表达它们所代表的内容。一个名为Model
的类听起来像是某些模型的通用类。相比之下,CustomerModel
说它是客户的模型。 客户 当您脱离上下文时也没有明确定义,但在您的特定应用程序中,含义是明确的。所以我建议选择CustomerModel
。
如果您只有Model
和Repository
类,那么只为这两个类声明一个完整的命名空间是不好的,尤其是当您定义几个二类命名空间时。也许将模型与存储库分开?
【讨论】:
是的,将模型与存储库分开可能是个好主意,因为所有存储库类都应该实现特定于存储的逻辑。谢谢你的回答。以上是关于哪个是命名命名空间和类的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章