精华内容
下载资源
问答
  • MVC MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务。 <br />视图 :视图是用户看到...

    MVC

    MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务。

    视图 :视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。

    模型 :模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

    控制器 :控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。

    现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。

    OOP

    面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。OOP 主要有以下的概念和组件:

    组件 - 数据和功能一起在运行着的计算机程序中形成的单元,组件在 OOP 计算机程序中是模块和结构化的基础。

    抽象性 - 程序有能力忽略正在处理中信息的某些方面,即对信息主要方面关注的能力。

    封装 - 也叫做信息封装:确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。

    多态性 - 组件的引用和类集会涉及到其它许多不同类型的组件,而且引用组件所产生的结果得依据实际调用的类型。

    继承性 - 允许在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。典型地来说就是用类来对组件进行分组,而且还可以定义新类为现存的类的扩展,这样就可以将类组织成树形或网状结构,这体现了动作的通用性。

    由于抽象性、封装性、重用性以及便于使用等方面的原因,以组件为基础的编程在脚本语言中已经变得特别流行。

    ORM

    对象-关系映射(Object/Relation Mapping,简称ORM),是随着面向对象的软件开发方法发展而产生的。面向对象的开发方法是当今企业级应用开发环境中的主流开发方法,关系数据库是企业级应用环境中永久存放数据的主流数据存储系统。对象和关系数据是业务实体的两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系,而在数据库中,关系数据无法直接表达多对多关联和继承关系。因此,对象-关系映射(ORM)系统一般以中间件的形式存在,主要实现程序对象到关系数据库数据的映射。

    面向对象是从软件工程基本原则(如耦合、聚合、封装)的基础上发展起来的,而关系数据库则是从数学理论发展而来的,两套理论存在显著的区别。为了解决这个不匹配的现象,对象关系映射技术应运而生。

     

    CURD

    CURD是一个数据库技术中的缩写词,一般的项目开发的各种参数的基本功能都是CURD。它代表创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作。CURD 定义了用于处理数据的基本原子操作。之所以将CURD 提升到一个技术难题的高度是因为完成一个涉及在多个数据库系统中进行CURD操作的汇总相关的活动,其性能可能会随数据关系的变化而有非常大的差异。

    CURD在具体的应用中并非一定使用create、update 、read和delete字样的方法,但是他们完成的功能是一致的。例如,ThinkPHP就是使用add、save、select和delete方法表示模型的CURD操作。

     

    ActiveRecord

    ActiveRecord也属于ORM层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。

    ActiveRecord的主要思想是:

    1. 每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field;

    2. ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;;

    3. ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑;

    ActiveRecord比较适用于:

    1. 业务逻辑比较简单,当你的类基本上和数据库中的表一一对应时, ActiveRecord是非常方便的,即你的业务逻辑大多数是对单表操作;

    2. 当发生跨表的操作时, 往往会配合使用事务脚本(Transaction Script),把跨表事务提升到事务脚本中;

    3. ActiveRecord最大优点是简单, 直观。 一个类就包括了数据访问和业务逻辑. 如果配合代码生成器使用就更方便了;

    这些优点使ActiveRecord特别适合WEB快速开发。

     

    单一入口

    单一入口通常是指一个项目或者应用具有一个统一(但并不一定是唯一)的入口文件,也就是说项目的所有功能操作都是通过这个入口文件进行的,并且往往入口文件是第一步被执行的。

    单一入口的好处是项目整体比较规范,因为同一个入口,往往其不同操作之间具有相同的规则。另外一个方面就是单一入口带来的好处是控制较为灵活,因为拦截方便了,类似如一些权限控制、用户登录方面的判断和操作可以统一处理了。

    或者有些人会担心所有网站都通过一个入口文件进行访问,是否会造成太大的压力,其实这是杞人忧天的想法。

    展开全文
  • mvc oop_MVCOOP

    2020-05-22 14:55:52
    mvc oop 模型-视图-控制器 (MVC)是我们都熟知的一种架构模式。 这是几乎所有UI和Web框架的事实上的标准。 它既方便又易于使用。 它简单有效。 对于程序程序员来说,这是一个很棒的概念。 如果您的软件是面向对象...

    mvc oop

    模型-视图-控制器 (MVC)是我们都熟知的一种架构模式。 这是几乎所有UI和Web框架的事实上的标准。 它既方便又易于使用。 它简单有效。 对于程序程序员来说,这是一个很棒的概念。 如果您的软件是面向对象的,那么您应该像我一样不喜欢MVC。 这就是为什么。

    热点! (1991)吉姆·亚伯拉罕(Jim Abrahams)

    这是MVC架构的外观:

    控制器负责处理从模型接收的数据并将其注入到View中,而这正是问题所在。 正如我们之前所同意的那样,数据逃脱了模型并变成“裸露”,这是一个大问题。 OOP就是关于封装-数据隐藏。

    MVC体系结构通过暴露数据和隐藏行为来完全相反。 控制器直接处理数据,决定其目的和属性,而本该知道所有有关数据并隐藏数据的对象仍然贫乏 。 这正是任何程序体系结构所基于的原理。 代码由数据负责。 以下面的C ++代码为例:

    void print_speed() { // controller
      int s = load_from_engine(); // model
      printf("The speed is %d mph", s); // view
    }

    函数print_speed()是控制器。 它从模型load_from_engine()获取数据s ,并通过视图printf()渲染。 只有控制器知道数据以英里/小时为单位。 引擎返回没有任何属性的int 。 控制器只是假设数据以英里/小时为单位。 如果我们想在其他地方创建类似的控制器,我们将不得不一次又一次地做出类似的假设。 这就是“裸数据”问题所在,并导致严重的可维护性问题。

    这是上述代码(伪C ++)的一种面向对象的替代方法:

    printf(
      new PrintedSpeed( // view
        new FormattedSpeed( // controller
          new SpeedFromEngine() // model
        )
      )
    );

    在这里, SpeedFromEngine.speed()返回以英里为单位的速度SpeedFromEngine.speed()整数); FormattedSpeed.speed()返回"%d mph" ; 最后, PrintedSpeed.to_str()返回消息的全文。 我们可以称它们为“模型,视图和控制器”,但实际上,它们只是相互装饰的对象。 它仍然是同一实体-速度。 但是通过装饰,它变得更加复杂和智能。

    我们不会撕裂速度的概念。 速度就是速度,无论是谁使用它以及在哪里显示它。 它只是从装饰器中获得新的行为。 它会增长,但永远不会崩溃。

    总而言之,Controller是MVC三重奏中的一个纯粹的过程组件,它将Model变成了被动数据持有者,而View变成了被动数据渲染者。 控制初探 ,保持 ,渲染 ......难道真的OOP

    您可能还会发现这些相关的帖子有趣: 封装掩盖了裸数据谁是物体? ; ActiveRecord比ORM更糟 ; Getters / Setters。 邪恶。 期。 ; 责任的垂直与水平分解

    您的浏览器禁用了JavaScript,这就是为什么您无法在此帖子下看到评论。

    翻译自: https://www.javacodegeeks.com/2016/12/mvc-vs-oop.html

    mvc oop

    展开全文
  • OOPMVC区别

    千次阅读 2017-06-06 09:10:20
    一个思想 一个模式 (模式是凌驾于面向对象之上的一种存在) OOP是面向对象编程 MVC是实现系统所选择的一种系统架构。 不使用MVC也一样可以实现系统的。 不使用OOP也一样可以编程。

    一个思想                                                        一个模式 (模式是凌驾于面向对象之上的一种存在)
    OOP是面向对象编程                                                  MVC是实现系统所选择的一种系统架构。
    不使用MVC也一样可以实现系统的。  不使用OOP也一样可以编程。

    与MVC相比,面向对象是微观的,而设计模式是更加宏观的一种概念。两者并不是一种类型的东西。

    OOP

    面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个对象都能够接收信息、处理数据和向其它对象发送信息。OOP 主要有以下的概念和组件:

    组件 - 数据和功能一起在运行着的计算机程序中形成的单元,组件在 OOP 计算机程序中是模块和结构化的基础。

    抽象性 - 程序有能力忽略正在处理中信息的某些方面,即对信息主要方面关注的能力。

    封装 - 也叫做信息封装:确保组件不会以不可预期的方式改变其它组件的内部状态;只有在那些提供了内部状态改变方法的组件中,才可以访问其内部状态。每类组件都提供了一个与其它组件联系的接口,并规定了其它组件进行调用的方法。

    多态性 - 组件的引用和类集会涉及到其它许多不同类型的组件,而且引用组件所产生的结果得依据实际调用的类型。

    继承性 - 允许在现存的组件基础上创建子类组件,这统一并增强了多态性和封装性。典型地来说就是用类来对组件进行分组,而且还可以定义新类为现存的类的扩展,这样就可以将类组织成树形或网状结构,这体现了动作的通用性。
    由于抽象性、封装性、重用性以及便于使用等方面的原因,以组件为基础的编程在脚本语言中已经变得特别流行。

    MVC

    MVC是一个设计模式,它强制性的使应用程序的输入、处理和输出分开。使用MVC应用程序被分成三个核心部件:模型(M)、视图(V)、控制器(C),它们各自处理自己的任务。

    视图 :视图是用户看到并与之交互的界面。对老式的Web应用程序来说,视图就是由HTML元素组成的界面,在新式的Web应用程序中,HTML依旧在视图中扮演着重要的角色,但一些新的技术已层出不穷,它们包括Adobe Flash和象XHTML,XML/XSL,WML等一些标识语言和Web services。如何处理应用程序的界面变得越来越有挑战性。MVC一个大的好处是它能为你的应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。

    模型 :模型表示企业数据和业务规则。在MVC的三个部件中,模型拥有最多的处理任务。例如它可能用象EJBs和ColdFusion Components这样的构件对象来处理数据库。被模型返回的数据是中立的,就是说模型与数据格式无关,这样一个模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

    控制器 :控制器接受用户的输入并调用模型和视图去完成用户的需求。所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。

    现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。

    展开全文
  • MVCOOP

    2020-04-27 15:28:05
    模型-视图-控制器 (MVC)是一种众所周知的架构模式。 这是几乎所有UI和Web框架的事实上的标准。 它既方便又易于使用。 它简单有效。 对于程序程序员来说,这是一个很棒的概念。 如果您的软件是面向对象的,那么您...

    模型-视图-控制器 (MVC)是一种众所周知的架构模式。 这是几乎所有UI和Web框架的事实上的标准。 它既方便又易于使用。 它简单有效。 对于程序程序员来说,这是一个很棒的概念。 如果您的软件是面向对象的,那么您应该像我一样不喜欢MVC。 这就是为什么。

    热点! (1991),吉姆·亚伯拉罕(Jim Abrahams)

    这是MVC架构的外观:

    控制器负责处理从Model接收的数据并将其注入到View中,而这正是问题所在。 正如我们之前所同意的,数据逃脱了模型并变成了“裸”,这是一个大问题。 OOP就是关于封装-数据隐藏。

    MVC体系结构通过暴露数据和隐藏行为来完全相反。 控制器直接处理数据,做出有关其目的和属性的决策,而应该知道有关数据的所有内容并隐藏数据的对象仍然贫乏 。 这正是任何程序体系结构所基于的原理。 代码由数据负责。 以下面的C ++代码为例:

    void print_speed() { // controller
      int s = load_from_engine(); // model
      printf("The speed is %d mph", s); // view
    }

    函数print_speed()是控制器。 它从模型load_from_engine()获取数据s ,并通过视图printf()渲染。 只有控制器知道数据以英里/小时为单位。 引擎返回没有任何属性的int 。 控制器只是假设数据以英里/小时为单位。 如果要在其他地方创建类似的控制器,则必须一次又一次地做出类似的假设。 这就是“裸数据”问题所在,并导致严重的可维护性问题。

    这是上述代码(伪C ++)的一种面向对象的替代方法:

    printf(
      new PrintedSpeed( // view
        new FormattedSpeed( // controller
          new SpeedFromEngine() // model
        )
      )
    );

    在这里, SpeedFromEngine.speed()以英里为单位返回速度(以整数表示); FormattedSpeed.speed()返回"%d mph" ; 最后, PrintedSpeed.to_str()返回消息的全文。 我们可以称它们为“模型,视图和控制器”,但实际上,它们只是相互装饰的对象。 它仍然是同一实体-速度。 但是通过装饰,它变得更加复杂和智能。

    我们不会撕裂速度的概念。 速度就是速度,无论是谁使用它以及在哪里显示它。 它只是从装饰器中获得新的行为。 它会增长,但永远不会崩溃。

    总而言之,Controller是MVC三重奏中的一个纯粹的过程组件,它将Model变成了被动数据持有者,而View变成了被动数据渲染者。 控制初探 ,保持 ,渲染 ......难道真的OOP

    您可能还会发现这些有趣的相关文章: 封装掩盖了裸数据谁是物体? ; ActiveRecord比ORM更糟 ; 吸气剂/设定者。 邪恶。 期。 ; 责任的垂直与水平分解

    您的浏览器禁用了JavaScript,这就是为什么您不能在此帖子下看到评论。

    翻译自: https://www.javacodegeeks.com/2016/12/mvc-vs-oop.html

    展开全文
  • 本文我们将介绍Windows OOP与Cocoa MVC之间的对比,在Objective-C里,你必须明确地创建一个controller用来处理model和view之间的变化。其实MVC应该被称做MCV,因为controller是在model和view之间的一个协调员。如果...
  • oopmvc 的思想 ****************oop*************************************** 1.所谓的 oop,也就是面向对象编程,这种思想颠覆了整个软件工 业,现在几乎所有的编程语言都支持 oop(除了向 C、汇编那种比较 古老...
  • <p>MVC is my worst fear and i think i'll be never able to use it's advantages because of i don't understand it's fundamentals. <p>My actual question/problem looks like: <p>The front controller calls...
  • Java编码 此存储库包含使用 OOPMVC 架构实现的示例 Java 编码(JSP 和 Servlet 页面)
  • OOA、OOD、OOPMVC概述OOAOODOOPMVC OOA         面向对象分析 Object Oriented Analysis是确定需求或者业务的角度,按照面向对象的思想来分析业务。    &...
  • OOP  面向对象编程是一种计算机编程架构。OOP 的一条基本原则是计算机程序是由单个能够起到子程序作用的单元或对象组合而成。OOP 达到了软件工程的三个主要目标:重用性、灵活性和扩展性。为了实现整体运算,每个...
  • 我并不是说你别用OOP的思想,而正相反我建议去用。问题是如果把一切都抽象化,那就有点太傻叉了……我们应该有很好的理由去写这些代码,而不要用诸如“我从大学里面学的……”或是“我一直就这么干……”这种理由。 ...
  • MVCOOP吗?

    2015-04-15 21:23:14
    先扯些闲话,刚刚走到工作岗位...现在已经三年过去了,今天在回家的路上突然想起一个问题:MVCOOP吗?作为一个虽然工作了三年的菜鸟,我首先想到的是Google一下,然后我就在StackExchange上发现了一个类似的问题: I
  • 浅谈mvcoop

    2013-08-17 19:19:57
    mvcoop都是一种编程的模式。当前的程序普遍采用这样的模式开发,是最为流行的开发方式。 mvc就是模型(model),视图(view),控制层(contro)的缩写,即将代码按不同的实现功能分为三个不同的层次。这样的分层...
  • 由以上三个主要目标总结出OOP的三个主要特性:继承,封装和多态,具体内容可参考:http://www.cnblogs.com/forwardpower/archive/2010/05/01/1725787.html MVC:Model View Controller 是模型(model)-视图(view)-...
  • Cocoa教学:Windows OOP与Cocoa MVC之对比

    千次阅读 2009-05-20 10:14:00
    Cocoa教学:Windows OOP与Cocoa MVC之对比作者: Cocoa China 【最热的Mac, iPhone专业开发论坛】【本文永久地址】1Aug封装不封装,这是个问题。 今天我在看Cocoa开发者邮件列表的时候,看到一个帖子,求助如何在两...
  • 简述MVC、MVT、OOP、AOP

    2019-06-24 20:49:09
    1.MVC MVC是一种流行的框架模式。其核心思想是分工、解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。 M全拼为Model,主要封装对数据库层的访问,对数据库中的数据进行增、删、改...
  • 重写规则 - MVC - OOP

    2016-08-11 10:34:00
    <p>I made a MVC framework (OOP) in php .</p> <pre><code>RewriteRule ^([A-Za-z]+)/([A-Za-z]+)/([0-9]+)$ ?module=$1&action=$2&id=$3 [L,QSA] RewriteRule ^([a-z]+)/([a-zA-Z]+)$ ?module=$1&...
  • 这是使用MVC Framework构建的Blog网站 语言:PHP OOP数据库:MySQL-PDO UI框架:Bootstrap 5
  • 自定义应用程序 自定义应用程序。 登录和注册表单、个人资料和主页。 (PHP、OOPMVC、MySQL、PDO、JavaScript、表单的服务器端和客户端验证)。
  • php博客 基于mvc的简单PHP OOP博客
  • 正确使用PHP MVCOOP

    2012-11-13 14:13:34
    <p>I've been reading and learning about OOP and MVC for the last week or so I would like to know if I'm on the right track. <p>Here is an example of what I currently have: <p>index.php Parses the ...
  • CP4U:使用MVCOOP的全栈CRUD电子商务项目
  • OOP,iOS,MVC何政达【前言】:写这篇文章的目的是总结一下这几天学到的有关iOS编程的有关知识点。主要分三部分:OOP的设计理念;iOS的构成;MVC的具体应用。Part I :OOP说起OOP,大家都知道是什么——面向对象程序...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 14,577
精华内容 5,830
关键字:

oop、mvc