我开发PHPWeb应用程序已经很长时间了,但现在我正在学习OOP方法。为了学习和实践,我正在开发一个简单的web应用程序“多项选择题”。当注册用户登录时,会向他显示一个测验列表。他选择一个问题,得到多个答案,其中任何一个都是正确的。
我的问题是:
识别类的规则是什么?我认为“测验”,“问题”
“答案”可以声明为类。我说得对吗?
这些类(或那些
你会建议的)。识别关联的规则是什么?
如何分离或呈现系统类(如数据库、验证
类)和业务域类?
如果能在问答系统中提供答案,我将不胜感激,因为我已经读了很多关于“动物狗”类的例子…提前感谢你的支持。
最佳答案
你会发现oop的一个特别的特点是Model View Controller范式。
php中的类通常是“对象”的表示,或者理想地完成某项任务的事物。它们的集合可以一起工作以提供更全面的功能,而单独使用则很少。
在mvc中,这些类通常分为(简而言之):
模型:帮助您处理数据库的类。每个表都有一个模型,每个模型都将提供保存和检索数据以及在事实发生之前和之后操作数据的能力。在您的例子中,问题将是一个模型,它可能包含问题本身和答案。
视图:这些不是类,而是通过控制器注入模型数据的原始HTML模板。在你的例子中,一种观点可能是问题观点。另一个可以表示索引页。还有一个可能会提出调查问卷的结果。
控制器:在视图和模型之间充当中间人的类。他们将从相关模型中获取数据并将其传递给视图。在您的情况下,这可能是一个测验控制器。它将从数据库中获取请求的问题并将其提供给视图,当提交答案时,控制器将其传递给模型以查看其是否正确,并相应地采取行动。
在这个mcv的背后是一个框架(预先制作的,或者你自己创建的),它提供了许多库和抽象层来帮助你专注于你的应用程序逻辑。所以会有数据库抽象,比如activerecord,会有常用过程函数的包装器,出现在oop上下文中,会有模板系统帮助将数据传递到视图并格式化它,等等。
如果你想朝这个方向走,考虑使用一个现有的框架,比如CakePHP或CodeIgniter给你一个开始。他们将使您熟悉oop(在某种程度上)以及如何使用类对大型项目有益。
关于php - 学习OOP PHP:识别类,测验系统的关联,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8961862/