问题描述
我写在别处了,在这里就不复制了。。多谢多谢。https://www.zhihu.com/question/41183709
解决方案
解决方案二:
引用
假设这里一共只有10个顾客,那么显示上面的用户界面需要查询数据库11次(一次查询所有客户,另外10次是每次为了获得该客户的订单总数)上面是面向对象的解决方法。
不知道你的奇谈怪论是从何而来既然只需要一条SQL语句(连接或子查询或其它).那么面向对象和面向过程又有什么区别
解决方案三:
查11次vs查1次这有什么好疑问的?
解决方案四:
噗就是这么理解面向对象和面向过程的?
解决方案五:
引用1楼xuzuning的回复:
引用
假设这里一共只有10个顾客,那么显示上面的用户界面需要查询数据库11次(一次查询所有客户,另外10次是每次为了获得该客户的订单总数)上面是面向对象的解决方法。不知道你的奇谈怪论是从何而来既然只需要一条SQL语句(连接或子查询或其它).那么面向对象和面向过程又有什么区别
在我举例的这种情况下,面向过程执行效率更高。
解决方案六:
引用2楼shingoscar的回复:
查11次vs查1次这有什么好疑问的?
你明明知道查询1次的情况执行的更快,仅仅是为了面向对象而面向对象?
解决方案七:
为什么面向对象就不能关联查询呢?你的理论就不对!!!
解决方案八:
你的立论就不对!!!
解决方案九:
引用6楼xuzuning的回复:
为什么面向对象就不能关联查询呢?你的理论就不对!!!
我明白你的意思,假设现在还有其它要求,比如要有这个客户的今年的消费总额,去年消费总额,今年的订单总数这个三个你得创建属性吧,是的,你可以在查询的时候用连接一起查询出来。但是,你如果创建客户类的实例呢,你总不能实例化这个Customer的时候也去查询一下上面的三个值吧?如果你保留这三个值为Null值,那么在你获取上面三个属性之一时,你是不是还得去查询数据库?是不是回到原来的问题上来了?
解决方案十:
引用5楼truelove12的回复:
Quote: 引用2楼shingoscar的回复:
查11次vs查1次这有什么好疑问的?你明明知道查询1次的情况执行的更快,仅仅是为了面向对象而面向对象?
我知道查1次快,不知道应该面向什么不如你解释下为什么查1次叫做面向对象,查11次叫做面向过程?
解决方案十一:
既然需要用到,没什么不一起查询呢?
解决方案十二:
引用9楼shingoscar的回复:
Quote: 引用5楼truelove12的回复:
Quote: 引用2楼shingoscar的回复:
查11次vs查1次这有什么好疑问的?你明明知道查询1次的情况执行的更快,仅仅是为了面向对象而面向对象?
我知道查1次快,不知道应该面向什么不如你解释下为什么查1次叫做面向对象,查11次叫做面向过程?
我的本意是想说,在这种情况下面象过程执行起来更快,想知道大家在这种情况下,依然使用OOP还是会使用面向过程。我回答你刚才的问题,假设是在开发web,大概的面向过程语句是stringhtml='';查询数据库得到结果集遍历{拼出html到str}显示
解决方案十三:
面向对象只是某个层面的事情,不是所有的地方都面向对象,如果所有的地方都要面向对象,那程序没法写了
解决方案十四:
引用10楼xuzuning的回复:
既然需要用到,没什么不一起查询呢?
嗯,你在做一个假设,因为你在想用户实例中肯定是需要这个值的所以把上面的三个参数都查询出来了,但是你想,如果另一个界面不需要那三个参数呢,是不是查询数据库白白消费资源了?
解决方案十五:
引用12楼starfd的回复:
面向对象只是某个层面的事情,不是所有的地方都面向对象,如果所有的地方都要面向对象,那程序没法写了
说得好,这让我想起Java中的int这样类型,为了面向对象,所以有了int的包装类形Integer