【发布时间】:2011-05-24 22:43:53
【问题描述】:
一些快速的背景信息:我正在编写一个网站,它将书籍与他们需要的课程相匹配。
我有两条数据需要在我的代码中表示 - 哪些书与哪些类有关,以及这些书上的数据(标题、作者、定价等)。
目前我用两个数组来表示这一切:$classArray 和 $Books_data。
与单变量方法相比,这种方法的优点是我不会重复自己——如果不同类需要多次使用一本书,则只需将 ISBN 存储在$classArray 中,我可以将数据存储在$Books_array 中。这个优势尤其显着,因为我必须即时从 API 中查询定价数据。如果我只有一个$classBooksArray,我将不得不将查询响应循环到一个大数组中,不必要地重复自己(似乎)。
这种方法的缺点是这些变量几乎无处不在,就像连体双胞胎一样。几乎每一个需要一个的功能,都需要另一个。而且我的编码感觉告诉我这可能是不必要的。
那么,存储这些数据的最佳方式是什么?两个数组,一个数组,或者我没有提到的其他方法(例如通过引用传递)。
【问题讨论】:
-
您有面向对象编程的经验吗?我的第一直觉认为这可以使用它来简化。您可以有一个名为 Class 的类,它可以“拥有”另一个名为 Book 的类的许多不同实例。两个班级可以轻松地共享数据库中的同一本书。
-
嗯,这可能是最终的方向。对象方法在哪些方面比 DVK 建议的参考方法更好?
-
OOP 和非 OOP 之间的通常区别。您可以隐藏类的实现,以便以后可以在不破坏调用者代码的情况下更改类实现等...在这种特定情况下,OOP 方法可能有点矫枉过正,但我来自 Perl 世界,对象拜物教不是像在 Java 中一样流行,所以我倾向于只在真正需要的地方使用 OO ;)