首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php面向对象编程

php面向对象编程
EN

Stack Overflow用户
提问于 2011-03-05 12:33:52
回答 2查看 218关注 0票数 1

我有一些关于OOP的问题。我不是一个高级用户,我正面临着一些人以前可能有过的问题。

基本上,我使用MVC来处理我的php项目。我试着让这个类尽可能独立。但我认为这是相当困难的。例如:

我有一辆普通的汽车和用户。用户将汽车信息发布到网站上,可能是为了出售...

在User类中,我使用getUser来获取用户信息。

所以在Car类中,我可能有setCar,getCar,saveCar。要显示这些汽车,我可能需要一个displayCars()。在displayCars()中,我可以使用getCar来获取汽车列表。但我可能还需要使用User::getUser来获取提交这些汽车的用户的用户信息。因此,在某种程度上,displayCars依赖于User::getUser。

那么我应该在这里做什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-05 12:42:39

你需要的不仅仅是汽车和用户来模拟这个问题。从概念上讲,我至少会有以下几点:

  • 每辆车都应由car对象表示
  • 用户输入填充Car对象属性的信息
  • Car对象和提交该汽车的用户都成为CarDBItem对象的属性
  • 然后将所有CarDBItems放入CarDB对象中,该对象管理任何用户输入的所有汽车<

>F29

当然,这被大大简化了--当您实际编写应用程序时,将会有比这更多的事情。但我认为从这些角度看问题是一个很好的起点。

票数 1
EN

Stack Overflow用户

发布于 2011-03-05 13:05:28

您的部分困惑来自于OO和MVC是完全不同的设计概念,实际上可能是矛盾的。我在工作中也面临着同样的争论。

例如,OO说只有类本身应该知道类是如何工作的,而其他所有的类都应该只与它的接口通信。MVC建议您应该拥有几乎没有任何功能的哑巴数据(模型)对象,使用单独的类来保存业务逻辑。

OO说,如果你需要两个类以类似的方式工作,让它们继承基类的公共功能,而MVC通常喜欢在调用其他具有实际功能的类的类之前放置一个外观。

您可以将两者组合在一起,但不能在相同的位置或层中。您可以使用组合来构建模型(数据对象),这些模型(数据对象)是其他模型的超集,并且可以使用继承来创建类似的控制器,但必须小心执行此操作。

基于Web的应用程序非常适合MVC,正如其他人所指出的那样,有一些成熟的框架可以用来指导您。

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

https://stackoverflow.com/questions/5201699

复制
相关文章

相似问题

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