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

65970

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

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

43622

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

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

5.6K60

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

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

1.3K20

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

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

31820

用代码手把手教你使用MVVM

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

1.9K20

唯一可行 iOS 架构

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

1.2K20

七天学会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和简单字符串类型返回值。让我们来了解MVCView部分吧。...单个Action 方法可引用多个View

3.1K60

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

MVC、MVP、MVVM三剑客

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

1.1K111

论MVVM伪框架结构和MVCM实现机制

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层则处理事件响应以及业务调用以及通知界面更新。

78430

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

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

1.3K20

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

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

97150

聊聊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.7K92

了解一下MVC

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

41230

架构师最常使用5种架构模式及其适用场景分析

一、分层架构 这种方法可能最常见方法,因为它通常围绕数据库构建,并且业务许多应用程序自然会倾向于将信息存储RDBMS。...Model-View-Controller(MVC)分层结构大多数流行Web框架提供标准软件开发方法,显然分层体系结构。数据持久层上方服务层,它通常包含业务逻辑和有关数据库数据类型信息。...视图层位于顶层,通常是CSS,JavaScript和带有动态嵌入式代码HTML。中间有一个控制层,该控制层具有用于转换视图和模型之间移动数据各种规则和方法。...适合: 具有异步数据流异步系统 各个数据块仅与多模块少数模块交互应用程序 用户界面 三、微内核-多插件架构 许多应用程序具有一组核心代码,这些代码不同模块下反复使用。...这种方法类似于事件驱动和微内核方法,但是主要用于解耦不同模块及任务。许多情况下,不同任务可能需要不同处理量,并且用途可能会有所不同。所以微服务特点便于修改、便于扩展。

35910

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

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

13910

JavaFX WebView概述,很强大,内置了类似Electron功能

WebView运行JavaScript可以调用Java API,而Java API可以调用在WebView运行JavaScript。...它封装了一个WebEngine对象,将HTML内容合并到应用程序场景,并提供了应用效果和转换属性和方法WebView对象上调用getEngine()方法将返回与其关联Web引擎。...JavaScript命令 从JavaScript执行向上调用JavaFX 处理事件  除了支持CSS3和ecmascript6(ES6),WebView组件还支持以下HTML5功能: DOM3 帆布...getDocument()方法提供对模型根目录访问。此外,还支持DOM事件规范,以Java代码定义事件处理程序。 以下示例将Java事件侦听器附加到网页元素。...目的使安全漏洞修补程序具有新功能之外并遵循最新标准。

10.4K41

iOS 常用设计模式汇总

一、MVC模式 MVC一种软件设计典范,用一种业务逻辑、数据、界面显示分离方法组织代码,将业务逻辑聚集到一个部件里面,改进和个性化定制界面及用户交互同时,不需要重新编写业务逻辑 1.1实例 MVC...视图对象知道如何将自己绘制出来,并可能对用户操作作出响应。视图对象主要目的,就是显示来自应用程序模型对象数据,并使该数据可被编辑。尽管如此, MVC 应用程序视图对象通常与模型对象分离。...iOS应用程序开发,所有的控件、窗口等都继承自 UIView,对应MVCV。...控制器对象还可以为应用程序执行设置和协调任务,并管理其他对象生命周期。 ? 1.2应用场景 MVC模式非常古老设计模式,通过数据模型,控制器逻辑,视图展示将应用程序进行逻辑划分。...五、策略模式 策略模式定义了一系列算法,并将每一个算法封装起来,而且使它们还可以相互替换。策略模式算法独立于使用它客户而独立变化。

1.7K10
领券