首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在具有独立控件的(JavaFX) MVC架构中,让大多数事件处理程序只调用视图方法是正常的吗?

在具有独立控件的(JavaFX) MVC架构中,让大多数事件处理程序只调用视图方法是正常的。在MVC架构中,视图(View)负责展示数据和接收用户输入,控制器(Controller)负责处理用户输入并更新模型(Model),模型则负责存储和处理数据。事件处理程序是控制器的一部分,它们负责响应用户的操作并更新模型或视图。

在JavaFX中,事件处理程序通常与特定的控件相关联,当用户与控件交互时,事件处理程序会被触发。在这种情况下,事件处理程序可以直接调用视图方法来更新视图的状态或执行其他与视图相关的操作。这是正常的,因为视图是控制器的一部分,它们可以直接与视图进行交互。

然而,为了保持良好的代码结构和可维护性,建议将事件处理程序的逻辑尽量简单,并将复杂的业务逻辑放在控制器中。这样可以将视图和控制器的职责分离,使代码更加清晰和可扩展。事件处理程序应该尽可能地将用户的操作转发给控制器,由控制器来处理业务逻辑并更新模型或视图。

总结起来,在具有独立控件的(JavaFX) MVC架构中,让大多数事件处理程序只调用视图方法是正常的,但为了保持良好的代码结构和可维护性,建议将复杂的业务逻辑放在控制器中,并将事件处理程序的逻辑尽量简单化。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

MVC架构在Asp.net中的应用和实现

那么如何让 Web 应用程序的用户界面功能实现模块化,以便可以轻松地单独修改各个部分呢?面向对象的设计模式是经验的总结,MVC架构可以很好地解决上述问题。...MVC最初是在Smalltalk-80中被用来构建用户界面的[2]。 MVC架构把数据处理,程序输入输出控制及数据显示分离开来,并且描述了不同部件的对象间的通信方式。...2.3 有利于团队开发 在开发过程中,可以更好的分工,更好的协作。有利于开发出高质量的软件。良好的项目架构设计,将减少编码工作量 :采用MVC结构 + 代码生成器,是大多数Web应用的理想选择。...在模型状态的影响下,控制器使用特定的方法接受和解释这些事件。控制器的初始化建立起与模型和视图的联系,(这里一般会用观察者模式)并且启动事件处理机制。事件处理机制的具体实现方法依赖于界面的工作平台。...结束语 与软件所处理问题的内在模型相比较,用户界面是需要经常发生变化的,采用MVC设计模式可以在满足对界面要求的同时,使软件的计算模型独立于界面的构成。也可以基于此模型建立大型分布式应用程序框架。

3.7K20

#TW好文集锦# GUI应用的若干问题和模式

对视图更新的处理是MVC和MVP在实现上的主要区别: MVP中View不需要知道Model, Presenter直接操作View。..., 尤其是时序相关的问题 一个思路就是把显示逻辑从View中分离, 让View退化为简单的GUI控件的容器....这是Observer模式在同步方面的应用, 具有Observer松耦合的特点。 缺点也不意外, 它让用户交互的影响变的隐式了, 不易于理解应用整体行为和开发时调试等。...在我们的领域模型中触发事件可以遵循相同的Pattern 避免重入。 当事件处理函数开始事件处理的时候, 把自己置成一个不同的状态, 比如"处理中", 事件处理结束的时候再置回正常状态。...当在事件处理过程中触发新的事件又导致事件处理函数被调用, 可以检查自己是否在"处理中"的状态, 如果是的话忽略即可。 根据事件的源头来决定是否处理。

68170
  • 【愚公系列】2023年11月 WPF控件专题 2023秋招WPF高频面试题

    变换对象,包括形状、控件和视频。可以创建和动画 3D 图形。可以轻松绘制可缩放的矢量图形而不会出现锯齿状锯齿。2. 说说WPF中的XAML是什么?为什么需要它?它只存在于WPF吗?...4.WPF 中的资源是什么?资源提供了一种简单的方法来重用已定义的对象和值。 WPF 中的资源允许一次设置多个控件的属性。 例如,可以使用单个资源在 WPF 应用程序中的多个元素上设置背景属性。...26.什么是MVVM?MVVM(Model View ViewModel)是一个在WPF中制作应用的框架。 MVVM 与 MVC 框架相同。 它是一个三层架构,我们可以使用 MVVM 进行松耦合开发。...一个很好的例子是在标准 WinForms 中处理鼠标按钮的 onClick 事件。 这是在 GUI 项中引发事件并由所述 GUI 元素处理的地方。...主要区别在于,普通 .NET 属性的值是直接从类中的私有成员 读取,而 DependencyProperty 的值在调用 GetValue( ) 从 DependencyObject 继承的方法。

    53222

    JavaFX——(第一篇:介绍篇)

    图1.JavaFx 2 整体架构 场景图 JavaFX的场景图,显示在整体框架的最顶层,是整体JavaFX应用的起始点。它是一个分层次的树状结构的结点来表示应用用户接口的可视化元素。...在大多数应用中,场景图中有很多容易使用的组件被使用。...它提供服务用于连接JavaFX平台和本地操作系统。 Glass Toolkit也能够处理事件队列。和AWT不同的是,它不仅管理自己的事件队列还管理本地操作系统的事件。...Prism render thread:这个线程分别处理通过各自的事件分发程序。用于渲染事件分发。 Media thread:这个程序运行在后台通过最后的帧使用JavaFX应用线程。...Pulse 一个pulse是一个事件能指示场景图随时间变化的状态。一个pulse正常运行是每秒60帧。甚至场景的动画没有改变pulse也可能发生变化。

    6.1K60

    iOS架构设计:揭秘MVC, MVP, MVVM以及VIPER

    虽然在iOS应用用传统的MVC架构也可以实现,但这并没有多大意义,由于架构问题 ——三个实体是紧耦合的,每个实体和其他两个通信。这大大降低了可重用性——这可不是你希望在你的应用程序看到的。...可测性 — 非常好,基于一个功能简单的View层,可以测试大多数业务逻辑 易用性 — 在我们上边不切实际的简单的例子中,代码量是MVC模式的2倍,但同时MVP的概念却非常清晰。...那么在iOS中ViewModel到底代表了什么?它基本上就是UIKit下的独立控件以及控件的状态。...展示器(Presenter) — 包含UI层面(但UIKit独立)的业务逻辑以及在交互器(Interactor)层面的方法调用。...因此,在同一应用程序中混合架构是很自然的。例如:你开始的时候使用MVC,然后突然意识到一个页面在MVC模式下的变得越来越难以维护,然后就切换到MVVM架构,但是仅仅针对这一个页面。

    1.4K20

    被误解的 MVC 和被神化的 MVVM(一)

    MVC 的历史 MVC,全称是 Model View Controller,是模型 (model)-视图 (view)-控制器 (controller) 的缩写。...现在,MVC 已经成为主流的客户端编程框架,在 iOS 开发中,系统为我们实现好了公共的视图类:UIView,和控制器类:UIViewController。...大多数时候,我们都需要继承这些类来实现我们的程序逻辑,因此,我们几乎逃避不开 MVC 这种设计模式。 但是,几十年过去了,我们对于 MVC 这种设计模式真的用得好吗?...当然,因为和业务本身的数据意义相关,Model 层的复用大多数是在一个产品内部,不太可能像 View 层那样开源给社区。...这是最彻底和优雅的方式,不过稍微麻烦一些的是,你需要把这些控件的事件回调先接管,再都一一暴露回 Controller。 方法二:用一个静态的 Util 类,帮助你做 UIView 的拼装工作。

    34920

    用代码手把手教你使用MVVM

    MVC View:xml布局 Model:数据层,负责数据交互、存储和实体类定义 Controller:业务处理层 Android开发本身还是比较符合MVC架构的,但是Android中纯粹作为View的...这样就可以把视图操作和业务逻辑解耦,从而让Activity成为真正的View层。...不足的是,MVP模式中定义了大量的接口,使得代码结构变大和复杂;MVP是UI和事件驱动,需要手动调用大量的方法来进行实现,缺乏自动性。...在MVVM模式中,将程序结构分为三层——View-ViewModel-Model,接下来我们一起来认识它们: View: View层负责和UI相关的工作,我们只在XML、Activity和Fragment...包名.类名 name为type中的实体类定义“名字”,供以下布局中使用 定义了data属性后,就相当于xml布局已和实体类绑定 在控件中引用实体类属性的格式为: @{实体类.属性名} 在控件中引用实体类方法的格式为

    2K20

    唯一可行的 iOS 架构

    MVC 是正式尝试将具有图形用户界面的应用程序中的主要思想形式化的尝试之一。这些想法仍然有意义,不仅适用于 iOS 平台。您可以从 Trygve Reenskaug 的作品中了解有关 MVC 的信息。...Domain Model 永远不应该依赖于Presentation,即使是通过接口也是如此。Domain Model 所能做的就是发送有关某个事件的通知,而不知道谁将处理此事件。...但是您应该知道,在原始 MVC 中, Controller 和 View 都具有图形表示。 总而言之,原始 MVC 应该看起来像这样: ? 这适用于iOS吗? 当然可以!...由于许多应用程序逻辑不属于模型或视图,因此通常会在控制器中处理。这导致了一个称为 Massive View Controller 的问题,在该问题中,视图控制器最终会做太多事情。...这也是开发人员创建自己的 Presenter 并将所有逻辑移至这个 NSObject 子类的另一个原因。但是我们已经看到了这种方法的问题。 我们可以在 Person 类中编写此逻辑吗?

    1.3K20

    七天学会ASP.NET MVC (一)——深入理解ASP.NET MVC

    与ASP.NET完全没有关系,是一个全新的Web开发,事实上ASP.NET是创建WEB应用的框架而MVC是能够用更好的方法来组织并管理代码的一种更高级架构体系,所以可以称之为ASP.NET MVC。...如果你的回答是有一些事件处理器来处理button点击事件,那么很抱歉回答是错误的。...在Web编程中是没有事件的概念的,Asp.net Web forms 根据我们的行为自动添加了处理代码,所以给我们带来的错觉认为是事件驱动的编程。这只是一种抽象的描述。...实验二——深入理解View 在实验二中,创建一个简单的MVC应用,仅仅具有Controller和简单的字符串类型的返回值。让我们来了解MVC中的View部分吧。...单个Action 方法中可引用多个View吗?

    3.2K60

    MVC、MVP、MVVM三剑客

    从上图可以看出,Android本身的设计还是符合MVC架构的,但是Android中纯粹作为View的XML视图功能太弱,我们大量处理View的逻辑只能写在Activity中,这样Activity就充当了...这样就可以把视图操作和业务逻辑解耦,从而让Activity成为真正的View层。有一定的好处就是团队协作,便于开发。...ViewModel ViewModel只做和业务逻辑和业务数据相关的事,不做任何和UI相关的事情,ViewModel 层不会持有任何控件的引用,更不会在ViewModel中通过UI控件的引用去做更新UI...关于对UI控件事件的处理,我们也希望能把这些事件处理绑定到控件上,并把这些事件的处理统一化,为此我们通过BindingAdapter对一些常用的事件做了封装,Command会把你可能需要的数据带给你,这使得我们在...可以理解为自己写的一个方法,通过bindingAdapter来进行绑定,然后再xml中通过app:xxx(就是@bindingadapter注解的那个值)来进行调用 特别值得一提的就是在set方法中调用

    1.2K111

    iOS面试题:MVVM和MVC的区别

    View的如何构建(PS:IB或者手写界面)何必让Controller知晓,同时View不应该直接引用model(PS:现实中,你懂的!),并且仅仅通过IBAction事件引用controller。...网络数据的请求及后续处理,本地数据库操作,以及一些带有工具性质辅助方法都加大了Massive View Controller的产生。...viewController 只是一个中间人,接收 view 的事件、调用 viewModel 的方法、响应 viewModel 的变化。...2.3 MVVM 的优势 低耦合:View 可以独立于Model变化和修改,一个 viewModel 可以绑定到不同的 View 上 可重用性:可以把一些视图逻辑放在一个 viewModel里面,让很多...总结 MVC的设计模式也并非是病入膏肓,无药可救的架构,最起码目前MVC设计模式仍旧是iOS开发的主流框架,存在即合理。

    1.4K30

    论MVVM伪框架结构和MVC中M的实现机制

    MVC框架图 一个很可惜的事实是不管是Android和iOS都只对C和V两部分进行了标准的定义和实现:Android的视图部分的实现是定义了各种控件以及通过XML文件来组装视图布局界面,iOS的视图的实现也是定义了各种控件以及通过...MVVM各层的依赖关系 我的很多视图的事件是在C层中处理的,那我是不是可以把C层的事件处理也拿出来呢? 干脆就拿出来吧。但是怎么拿出来呢?...它不再处理视图的事件了,因为事件让RAC给处理了、它也不处理视图的刷新和业务逻辑的调用了因为让视图模型MV给处理掉了、他也不处理数据的解析了因为让模型层给替换掉了。嗯。。。。...但是我想说的是当存在这种场景时,我们更加应该将这种连续的网络调用在M层内部消化掉,而只给C层提供一个简易而方便的接口,让C层根本不需要关心这种调用的连续性。...整个框架的设计最优结构是V层不依赖C层而独立存在,M层不依赖C层和V层独立存在,C层负责关联二者,V层只负责展示,M层持有数据和业务的具体实现,而C层则处理事件响应以及业务的调用以及通知界面更新。

    81130

    系统架构师-基础到企业应用架构-分层

    4.3、前端分层架构 A、MVC架构模式 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码...目前在主流的框架中都支持该模式,例如构建winform程序中可以通过MVC模式来分离界面层中的控件与后端服务间的交互。降低耦合及依赖。...MVC好处是它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。       ...你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。 3. 独立开发。...模型(Model) Model与MVC模式一样,Model用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。

    1.4K20

    系统架构师-基础到企业应用架构-分层

    4.3、前端分层架构 A、MVC架构模式 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑和数据显示分离的方法组织代码...目前在主流的框架中都支持该模式,例如构建winform程序中可以通过MVC模式来分离界面层中的控件与后端服务间的交互。降低耦合及依赖。...MVC好处是它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,不管这些数据是联机存储的还是一个雇员列表,作为视图来讲,它只是作为一种输出数据并允许用户操纵的方式。       ...你可以把一些视图逻辑放在一个ViewModel里面,让很多view重用这段视图逻辑。 3. 独立开发。...模型(Model) Model与MVC模式一样,Model用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。

    99550

    聊聊iOS开发之MVVM的架构设计

    MVC/MVVM都是就是设计模式的一种。 在MVC的架构中,Model持有数据,View显示与用户交互的界面,而ViewController调解Model和View之间的交互。...- viewController 只是一个中间人,接收 view 的事件、调用 viewModel 的方法、响应 viewModel 的变化。...在工作中如果遇到量级非常重的控制器,可以针对实际的业务,将一组业务逻辑相关的代码抽取到一个独立的视图模型中处理。你可用子viewModel 来代表屏幕上更小的、更潜在的被封装的部分。...可知,dataSource是一个里面装着SUGoodsItemViewModel的对象数组,在表格视图中的 tableView: cellForRowAtIndexPath:方法中,将会从视图控制器的viewModel...MVVM是基于胖Model的架构思路建立的,然后在胖Model中拆出两部分:Model和ViewModel。

    8.8K92

    了解一下MVC

    MVC是Model-View-Controller的简写,模型-视图-控制器: Model是应用程序中用于处理数据逻辑的部分,负责在数据库中存取数据。...; View是应用程序依据模型数据创建的显示的部分; Controller是应用程序处理交互的部分,从视图读取数据,控制用户输入等,并向模型发送数据。...MVC的目的是将M和V的实现代码分离,从而使同一个程序可以使用不同视图,也就是说一个模型可以被多个视图重用。而控制器则是接收页面页面的事件,然后决定调用哪个模型去处理请求,最后确定用哪个视图显示。...每一个层都是独立的,当你替换任何一个或者更新一个层的东西,对于另外两个都不影响。 现在公司有.net的询问了一下,他们使用的都是MVC的框架,通过Controller分发视图。...还有就是IOS,提供了公共的视图类和控制器类,也是MVC模式。而针对MVC,Model和View很大一部分是可以重用的,也就是为什么GitHub上那么多开源的控件。

    42130

    Java图形用户界面程序设计所需要使用的工具

    在 AWT和 Swing中,提供了Component 类、JComponent 类及它们的子类,这些类实例化后的对象就是生成的相应组件。然而,组件并不能独立地显示,必须将其放置在容器中。...完成 GUI应用程序所应具备的功能,除了合理使用各种容器、组件和布局管理方式产生美观的界面外,还需要进行事件处理,以达到程序与用户的交互,从而实现程序的功能。...针对不同组件激发的不同事件,定义类去实现相应的事件监听器接口,按照“事件委托处理模型”完成事件处理。...这样可以使得AWT应用程序在不同平台上具有相似的外观和行为。 AWT提供了一套事件模型,可以处理用户按下按钮、鼠标点击等操作。开发人员可以通过注册监听器来响应这些事件,并进行相应的处理。...Swing的特征 Swing 组件采用 MVC(Model-View-Controller, 即模型一视图一控制器)设计模式: 模型(Model): 用于维护组件的各种状态; 视图(View

    34810

    hhdb客户端介绍(8)

    总体架构 本软件采用桌面应用程序经常使用的MVC架构,MVC(Model-View-Controller)架构是一种用于分离关注点的软件设计模式,它将应用程序分成三个主要组件:模型(Model)、视图(...事件驱动: 视图中的用户操作(如点击按钮、提交表单)触发事件,这些事件由控制器处理。控制器根据事件类型调用相应的模型方法并更新视图。...设计控制器: 编写控制器类,处理用户输入和请求。控制器调用模型方法执行操作,并根据结果更新视图。 连接组件: 确保视图能够触发控制器事件,控制器能够调用模型方法,模型在数据变化时通知视图更新。...测试和迭代: 测试整个MVC架构,确保各个组件协同工作。根据需要进行迭代和优化。 6.架构优势 分离关注点: MVC架构将应用程序划分为三个独立的组件,每个组件都承担着不同的责任。...便于测试: 由于组件之间的松耦合关系,开发者可以独立地测试每个组件。这有助于确保应用程序的质量和稳定性。 提高可扩展性: MVC架构允许开发者在不影响其他组件的情况下修改和扩展应用程序的功能。

    7010

    JavaFX 11发行说明

    添加API以自定义Spinner控件的步骤重复计时 在JavaFX 11中修改值步骤之前,必须在Spinner控件箭头按钮上按下鼠标的默认持续时间。...默认情况下,独立的javafx模块不再具有权限 javafx.* 模块现在由应用程序类加载器加载,默认情况下不再具有权限。...只要FX窗口工具包代码在Linux上使用GTK 3,就会发生这种情况,这是JavaFX 11的默认设置。 建议的解决方法是在运行JavaFX应用程序时使用Xorg服务器而不是Wayland服务器。...使用具有独立SDK的安全管理器运行时,Swing interop失败 在启用安全管理器的情况下运行时,FX / Swing互操作应用程序将失败。...:: getDefaultClassLoader中调用类的错误检查 FXML JDK-8129582 在Linux上显示RTL语言文本时,控件显着减慢 图像 JDK-8195801 用MarlinFX

    6.7K60
    领券