首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多目标实例化

多目标实例化
EN

Software Engineering用户
提问于 2013-07-03 11:03:19
回答 1查看 3K关注 0票数 1

我正试图把我的注意力集中在面向对象的编程上,因为它涉及到web开发(更具体地说,是PHP)。

我理解继承和抽象等等,并且知道所有像封装和单一目的这样的“时髦词”,以及我为什么要这么做。

但我的知识还不足以真正创建与我在数据库中的数据相关的对象,创建一个代表单个实体的对象,但是在创建100个、1000个或10万个相同类型的对象时,最佳实践是什么?

例如,当试图显示项目列表时,理想情况下,我希望与我使用的对象保持一致,但在哪里运行查询/获取数据填充对象(S),因为运行10,000个查询似乎是浪费的。

举个例子,假设我有一个猫的数据库,我想要一个所有黑猫的列表,我是否需要设置一个FactoryObject,从我的数据库中获取每只猫所需的数据,然后将数据传递到每个单独的CatObject中,然后在一个数组/对象中返回结果--或者我应该传递每个CatObject的标识符,然后让它自己填充到一个单独的查询中。

EN

回答 1

Software Engineering用户

回答已采纳

发布于 2013-07-03 12:04:02

创建100、1000或10 000个类似对象本身并不是一个问题(除非对象本身是巨大的)。如果你发现自己创造了成千上万的对象,问问自己是否真的需要。

如果要加载存储在数据库中的每个猫一个的Cat对象,那么是否需要加载所有的50万猫?为什么?您不能在屏幕上显示它们:它不会特别有用。如果你需要处理它们,预加载是最好的方法吗?

当你需要黑猫的列表时,你不会加载所有可用的猫。您所做的是在数据库级别(例如,使用where [color] = @color)限制所获得的结果,并且只构建与黑猫对应的对象。

实际上,这可以在一个工厂中完成,该工厂将包含一个采用特定颜色并返回此颜色的猫的方法。

另一方面,执行每只猫的查询是一种糟糕的方法。查询越少越好。这就是为什么你建议使用工厂是个好主意。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/203537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档