【发布时间】:2014-08-15 16:15:20
【问题描述】:
我一直主要使用功能范例来构建我的应用程序架构,特别是针对我从头开始构建的部件/模块。现在,我也在尝试OOD。在基于 PHP、MySQL、IdiORM 的应用程序中,用于跟踪音乐曲目信息;我的下一步是构建搜索功能,如果它是正确的方法,我计划在哪里创建一个类。我非常熟悉一般的 OOP 理论概念,如继承、多态等。
在我过去几年的典型工作流程中,我会在包含目录中创建一个名为 search.inc.php 的文件,实现如下功能:
function search_by_artist($artist_name){
...
}
function search_by_track($track_name){
...
}
然后将其编码为一项服务,该服务根据从数据库中获取的结果返回 JSON,并使用表单中的 POST 值创建 WHERE 子句。
我的问题是,在这种情况下,将这些实现移至名为 Search 的类是否有意义。如果是这样,这个类的实例在逻辑上代表什么? 很抱歉问了一个幼稚的问题,但由于我的大部分背景都是函数式 PHP 和 JavaScript 中的原型继承,所以我不太熟悉正统的 OOD 在这里如何应用。此外,是否建议将 add.inc.php 或通常将所有 CRUD 服务文件转换为类?
一般来说,在什么样的场景下应该首选基于功能服务的架构,什么时候使用OOD更好?
【问题讨论】:
-
如果它有效,请不要修复它。如果您不了解面向对象的编程,请按原样离开生产并学习开发
-
@DarylGill 是的。确实 !制作很好,就像我从头开始编写大部分代码一样完美。我希望扩大我的视野,所以我正在制作一个本地副本以了解 OOD 的细微差别,以用于未来的项目,以便我可以在它使结果更有效时使用它。 :)
-
如果设置正确,面向对象的编程绝对是一颗明星。使它有条理和更清晰的代码。开发人员应了解何时在当前部署之上实现扩展的抽象类