Java 观察者模式vs MVC

Java 观察者模式vs MVC,java,model-view-controller,design-patterns,observer-pattern,Java,Model View Controller,Design Patterns,Observer Pattern,我想知道观察者模式和MVC之间有什么区别。 我在学校有一些用Java编写MVC程序的经验,但没有观察者模式的经验。(有人告诉我,observer模式意味着我在Java中使用了observer类……我认为这不是一个好答案。) 请帮我回答以下问题,非常感谢 他们之间有什么区别?观察者模式不为控制器使用单独的类 观察者模式和MVC之间的关系是什么? 我听到两种不同的说法 第一个版本是,MVC是一种体系结构,而Observer模式是一种设计模式。它们看起来很相似,因为MVC使用观察者模式 第二个版本是

我想知道观察者模式和MVC之间有什么区别。 我在学校有一些用Java编写MVC程序的经验,但没有观察者模式的经验。(有人告诉我,observer模式意味着我在Java中使用了observer类……我认为这不是一个好答案。)

请帮我回答以下问题,非常感谢

  • 他们之间有什么区别?观察者模式不为控制器使用单独的类

  • 观察者模式和MVC之间的关系是什么? 我听到两种不同的说法

    • 第一个版本是,MVC是一种体系结构,而Observer模式是一种设计模式。它们看起来很相似,因为MVC使用观察者模式
    • 第二个版本是,观察者模式和MVC是两种不同的设计模式
  • 是否可以只使用其中一个?如果是的话,在什么情况下,你使用一个而不是另一个,为什么


  • 有很多文章都与你提出的问题有关。MVC对我来说是一种架构模式,它“包含”了观测者模式。我相信,如果一个人真的在不同的实际项目实现中研究MVC模式,那么其中就有不止一种设计模式

    要么放大,要么缩小

  • 你说得对,MVC更多的是一种架构风格,而不是一种设计模式 这里讨论得很好:
  • 我希望这也能回答你的另外两个问题

    观察者设计模式是一种行为模式,当我们想要在对象x发生变化时通知对象(比如x)的所有从属对象时,使用该模式。 好书:

    它们都是密切相关的,正如你们从MVC图中可以看到的- 例如:“视图”中的更改必须通知“模型”和“控制器” 实现这种特性的一种有效方法是观测器设计模式

    好书:

    希望这有帮助


    MVC包含Observer我在这里看到一个循环。视图向控制器发送信号,控制器向模型发送信号,模型向视图发送信号??是。信号在视野处开始和停止。例如,如果单击按钮将文本斜体化,视图会告诉控制器,由控制器决定“斜体化”的含义(逻辑,例如,是否实际选择了任何文本),然后更新文本模型(将该文本块设置为“ITALIC=TRUE”),这会告诉视图显示字体的斜体版本。一般来说,你不需要无限循环,但是如果更新来自模型,箭头“视图选择”会做什么呢?
    In fact the observer pattern was first implemented in Smalltalk's MVC based user 
    interface framework.