- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我是一名经验丰富的程序员并且经常使用 OOP,因此我对这个概念非常熟悉。我在网络开发方面也很有经验。我不熟悉的是他们是如何走到一起的。例如,假设我正在编写一些论坛软件。我创建了一个类来处理和表示用户的“帖子”。我将创建从数据库加载它的方法、将它显示在屏幕上以供阅读的方法,以及允许用户编辑内容的方法。
这就是我的困惑所在。我将指示 Post 对象从数据库加载内容,然后将其显示在表单中供用户编辑。表单将在哪里提交信息?如果服务器上不再存在信息,如何将信息发送回 Post 对象?我是否必须重新创建 post 对象,向其提供表单数据,然后执行更新方法?有没有什么方法可以使对象在服务器上持久化直到不再需要它们?
如果我的问题没有多大意义,我深表歉意。如果我知道要问什么,Google 应该已经回答了我的问题。
最佳答案
为了解决这个问题,有一个流行的 pattern in OOP这就是所谓的 MVC( Model View Controller )。阅读一些理论知识并阅读周围的一些实现。
This is where my confusion comes it. I'll instruct the Post object to load the content from the database then display it in a form for the user to edit. Where will the form submit its information?
通过 HTTP 到您的网络服务器。
How do I send the information back to the Post object if it no longer exists on the server?
对于持久性存储,这通常是一个数据库。
Do I have to recreate the post object, feed it the form data, then execute the update method?
是的,因为 HTTP 请求的无状态性质将您的应用程序作为顶级请求发出命令。
Is there some way to make objects persistent on the server until they're no longer needed?
当然。有一些对象“冰箱”可以让您持久地存储对象,如果您不再需要它们,您可以将它们从冰箱中取出。
可提供 MVC 的 PHP 框架是 symfony2。它在本文中对 MVC 的工作原理做了一些解释:Symfony2 versus Flat PHP这很好地解释了 MVC 如何与任何基于 HTTP 的 PHP 脚本/应用程序一起工作。
sourcecode is located on github如果您更喜欢阅读代码。
关于php - 深入了解 PHP 中的基本 OOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6747476/
最近做一个项目,由于是在别人框架里开发app,导致了很多限制,其中一个就是不能直接引用webservice 。 我们都知道,调用webserivice 最简单的方法就是在 "引用"
这是SDL2代码的一部分 SDL主函数 int main(int argc,char *argv[]) { ... ... bool quit=false; S
c 中的函数: PHPAPI char *php_pcre_replace(char *regex, int regex_len, ch
我有以下映射: public class SecurityMap : ClassMap { public SecurityMap() {
我在vue-lic3中使用了SCSS,但是有一个奇怪的错误,使用/ deep /会报告错误,我不想看到它。 代码运行环境 vue-cli3 + vant + scss 的CSS /deep/ .van
我在深入阅读 C# 时遇到了这个我能理解的内容: 当它被限制为引用类型时,执行的比较类型完全取决于类型参数被限制为什么。 但是不能理解这个: 如果进一步限制派生自重载 == 和 != 运算符的特定类型
Closed. This question is opinion-based。它当前不接受答案。 想改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。 3年前关闭。
有人可以详细介绍关于自赋值的运算符重载中的 *this 和 const 例如: Class& Class::operator=(const Class& other) { a = other.
在向树中插入新节点时,如何填充闭包表的深度/长度列? ancestor 和 descendant 中的值是来自另一个表的 ID,表示要以树结构排列的页面。 关闭表: ancestor desce
现在我正在阅读“深入了解 C#”。缺少的一件事是完成一章后我可以解决的一系列问题。那会帮助我理解我刚刚学到的概念。 哪里可以找到适合 C#3.0 的问题集? 谢谢 最佳答案 你可以试试LINQ 101
TypeScript 给 JavaScript 扩展了类型的语法,我们可以给变量加上类型,在编译期间会做类型检查,配合编辑器还能做更准确的智能提示。此外,TypeScript 还支持了高级类型用
是否有一个单行代码来获取生成器并生成该生成器中的所有元素?例如: def Yearly(year): yield YEARLY_HEADER for month in range(1, 13)
所以我阅读了一些与“什么是方法组”相关的 StackOverflow 问题以及其他互联网文章,它们在底线都说了同样的话——方法组是“一组重载方法” ". 但是,在阅读 Jon Skeet 的“C# 深
有什么方法可以从子组件中获取子组件吗? 想象一下以下组件树: 应用程序 问题 问题选项(包含复选框) 问题选项(包含复选框) 问题选项(包含复选框) 我想从 App 访问问题选项以选中所有复选框。 参
class_eval 和 instance_eval 在定义方法等情况下是完全可以预测的。我也理解类的实例和类的单例(又名特征类)之间的区别。 但是 我无法弄清楚以下唯一的事情:比方说,出于某些策略目
我想出了如何将符号 rwx 部分读取/转换为 421 个八进制部分,这非常简单。但是当涉及到特殊字符时,我感到非常困惑。我们知道 -r-xr---wx 转换为 0543,但 -r-sr---wt 或
我怀疑我系统的 Java 版本有问题。某些应用程序出现段错误或内存不足或存在链接错误。如果我从源代码安装了 JDK,我会做类似“make test”的事情,看看哪些测试失败了。但是,看起来从源代码构建
如何克隆一个 repo(使用 libgit2 ) 我想做什么git clone确实,但有 libgit2 .我可能要问的是什么 git clone确实很深入。 这是我目前正在做的: 初始化一个repo
00、头痛的JS闭包、词法作用域? 被JavaScript的闭包、上下文、嵌套函数、this搞得很头痛,这语言设计的,感觉比较混乱,先勉强理解总结一下😂😂😂.
我开始玩 lubridate R 中的包。我注意到 now(tzone="EST")计算为: [1] "2015-08-25 13:01:08 EST" 而 now(tzone="PST")导致警告:
我是一名优秀的程序员,十分优秀!