在最近的阅读中,我看到有关封装方法和OOP最佳实践的相互矛盾的建议.
我开始开发一系列PHP类,用于将数据从多个源系统传输和转换到最终目标.因此,第一个类的属性包含源URL和身份验证值.
对于具有无限扩展潜力的长期项目,以下哪项最佳?
声明为公共属性.在构造类时为每个源设置外部值.亲:简单.Con:没有封装优势
使用__get和__set.为每个源设置外部值.Pro:遵循OOP惯例.Con:打开所有外部访问; 再次,没有封装
将属性声明为受保护.对于我需要使用的每个源系统,扩展原始类并在子类中设置属性.Pro:带封装的OOP.Con:要管理的更多类和可能的文件.
目前,尽管存在文件开销,但选项3似乎是最好的.我也对其他想法持开放态度.
我读过这个问题的参考文献:
http://typicalprogrammer.com/?p=23
http://www.php.net/manual/en/language.oop5.overloading.php
至少还有一个选项:将这些参数注入构造中的对象,并通过getter使它们成为只读"属性".仅通过工厂构造对象(您也可以强制执行此操作,但我不确定这样做是否有任何实际好处).
工厂可以在启动时配置(可能是一个加号),只有一类传输,而消费者只能以它选择公开它的方式查看每个传输的状态(封装).
| 归档时间: |
|
| 查看次数: |
551 次 |
| 最近记录: |