我一直在PHP开发一段时间,但直到最近才切换到OOP方法。这一直此起彼伏,我面向对象的最佳实践(特别是PHP)
的一个问题是“有多远”去与面向对象的东西,特别是在执行速度方面和内存资源等
例如,假设我有2个对象,用户和列表
列表总是链接到一个单独的用户。 UserId是Listing的一个属性,所以我知道它与哪个用户相关。 偶尔,在Listing方法中,我需要访问相关用户的单个属性。
据我所见(请告知如果没有的话)我有3个选项可以实现这个功能。
创建一个新的用户对象,并通过$用户访问培训相关属性格式 - >利人
进行必要的财产清单的本地属性和填充此房源被初始化时(例如,通过SQL JOIN )
查询数据库直接检索用户的通过用户ID所需要的属性
它似乎对我来说,选项1更加严格地遵守OOP规则,但由于初始化整个对象只是为了检索1个属性而具有性能命中。选项3将是最少的内存密集型,但完全避开了OOP。另外,就创建时填充对象而言,我的大多数对象在初始化后不久(通过只需要1个DB查询)就通过一个“填充”方法获得大部分属性。这通常会被认为是最佳实践,还是最好使用单独的方法来获得这些属性,并在需要时填充?
我意识到这可能没有“正确”的答案,但任何人都可以提供有关处理这种情况的最佳方法的建议吗?
非常感谢 尼克
你可以一举(1 + 2)尽快为他们登录(假设登录),填充它,并把它存储为对象(S)获取有关用户的一切,那么就保持它周围,以获取有关信息直到他们注销然后销毁该对象。我想这就是我应该去做的。 – robx 2011-06-01 07:48:51
除非你异形这三种方法,找到一个signigicantly阻碍性能,你不应该现在操心内存消耗和处理速度。只要使用有用的东西。 – Gordon 2011-06-01 07:49:40
如何使User对象成为Listing对象的属性,而不仅仅是UserId? – prasopes 2011-06-01 07:50:12