CN112527249A - 窗体处理方法、装置、电子设备及存储介质 - Google Patents
窗体处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN112527249A CN112527249A CN201910888088.8A CN201910888088A CN112527249A CN 112527249 A CN112527249 A CN 112527249A CN 201910888088 A CN201910888088 A CN 201910888088A CN 112527249 A CN112527249 A CN 112527249A
- Authority
- CN
- China
- Prior art keywords
- layer
- information
- view
- window
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 94
- 238000012545 processing Methods 0.000 claims abstract description 25
- 230000007246 mechanism Effects 0.000 claims description 9
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000012546 transfer Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 3
- 238000011161 development Methods 0.000 abstract description 13
- 230000008569 process Effects 0.000 abstract description 13
- 238000000926 separation method Methods 0.000 abstract description 7
- 238000010586 diagram Methods 0.000 description 10
- 238000004590 computer program Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9014—Indexing; Data structures therefor; Storage structures hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本发明提供了一种窗体处理方法、装置、电子设备及存储介质。其中方法包括:在视图层中引用新建的桥接层,将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层;在视图模型层中接收到窗体调用命令后引用所述桥接层,将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层;在所述桥接层中依据所述目标视图模型信息从所述对应关系中查找目标窗体信息,依据所述目标窗体信息创建并展示目标窗体。本发明的窗体处理方式保留了业务逻辑的代码与前端页面的代码分离的状态,满足了前后端分离开发的要求,处理过程更加简便。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种窗体处理方法、装置、电子设备及存储介质。
背景技术
在软件开发的过程中,为了使产品的开发更专业,通常采用前后端分离的开发模式。MVVM(Model-View-ViewModel,模型-视图-视图模型)的设计开发思想可以使前后端开发的工作分开,互不干涉。在WPF(Windows Presentation Foundation,Windows呈现基础)程序的开发中经常会使用到MVVM的开发模式。
在MVVM中,通常View(视图)层通过给ViewModel(视图模型)层发送命令来执行处理数据的逻辑。在开发中,为了逻辑上分离的更清楚,View层和ViewModel层经常出现在的不同的Project(工程)文件中。View层可以对ViewModel层进行引用,但是ViewModel层对View层是无感知的。因此,在该种情况下,ViewModel层是无法调用View层的窗体的。
针对上述问题,当viewModel层需要调用view层的窗体时,现有技术中通常是在view层中编写调用窗体的代码去调用view层的另一个窗体(也即viewModel层需要调用的窗体)。但是,该种方法使得业务逻辑的代码与前端页面的代码混合在一起,没有满足前后端分离开发的要求,没有发挥MVVM的优势,使得代码的维护工作更加复杂。
发明内容
鉴于上述问题,本发明实施例提供一种窗体处理方法、装置、电子设备及存储介质,以解决视图模型层无法调用视图层的窗体的问题。
第一方面,本发明实施例提供了一种窗体处理方法,所述方法包括:
在视图层中引用新建的桥接层,将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层;
在视图模型层中接收到窗体调用命令后引用所述桥接层,将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层;
在所述桥接层中依据所述目标视图模型信息从所述对应关系中查找目标窗体信息,依据所述目标窗体信息创建并展示目标窗体。
可选地,所述将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层,包括:针对所述视图层中的每个窗体,将当前窗体注册到所述桥接层中,在注册时将所述当前窗体的窗体信息和视图模型信息的对应关系传递至所述桥接层。
可选地,所述桥接层中定义有窗体注册方法;所述针对所述视图层中的每个窗体,将当前窗体注册到所述桥接层中,在注册时将所述当前窗体的窗体信息和视图模型信息的对应关系传递至所述桥接层,包括:在所述视图层中创建全部窗体的基类,每个窗体均继承所述基类;针对每个窗体,调用所述基类的构造函数,在所述构造函数中调用所述窗体注册方法,将当前窗体的窗体信息和对应的视图模型信息传递至所述窗体注册方法中。
可选地,所述桥接层中定义有窗体获取方法;所述将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层,包括:在所述视图模型层中调用所述窗体获取方法,将所述目标视图模型信息传递至所述窗体获取方法中。
可选地,所述依据所述目标窗体信息创建并展示目标窗体,包括:依据所述目标窗体信息,利用反射机制创建目标窗体的窗体实例;调用所述窗体实例的窗体显示方法展示所述目标窗体。
可选地,在所述桥接层中利用哈希表的键值key-value数据结构存储视图模型信息与窗体信息的对应关系,其中哈希表中的key用于存储视图模型信息,value用于存储窗体信息。
可选地,所述桥接层为一个公共common项目。
第二方面,本发明实施例提供了一种窗体处理装置,所述装置包括:
第一传递模块,用于在视图层中引用新建的桥接层,将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层;
第二传递模块,用于在视图模型层中接收到窗体调用命令后引用所述桥接层,将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层;
创建模块,用于在所述桥接层中依据所述目标视图模型信息从所述对应关系中查找目标窗体信息,依据所述目标窗体信息创建并展示目标窗体。
可选地,所述第一传递模块包括:注册单元,用于针对所述视图层中的每个窗体,将当前窗体注册到所述桥接层中,在注册时将所述当前窗体的窗体信息和视图模型信息的对应关系传递至所述桥接层。
可选地,所述桥接层中定义有窗体注册方法;所述注册单元包括:基类创建子单元,用于在所述视图层中创建全部窗体的基类,每个窗体均继承所述基类;方法调用子单元,用于针对每个窗体,调用所述基类的构造函数,在所述构造函数中调用所述窗体注册方法,将当前窗体的窗体信息和对应的视图模型信息传递至所述窗体注册方法中。
可选地,所述桥接层中定义有窗体获取方法;所述第二传递模块包括:调用单元,用于在所述视图模型层中调用所述窗体获取方法,将所述目标视图模型信息传递至所述窗体获取方法中。
可选地,所述创建模块包括:实例创建单元,用于依据所述目标窗体信息,利用反射机制创建目标窗体的窗体实例;窗体展示单元,用于调用所述窗体实例的窗体显示方法展示所述目标窗体。
可选地,在所述桥接层中利用哈希表的键值key-value数据结构存储视图模型信息与窗体信息的对应关系,其中哈希表中的key用于存储视图模型信息,value用于存储窗体信息。
可选地,所述桥接层为一个公共common项目。
第三方面,本发明实施例提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行如上任一项所述的窗体处理方法。
第四方面,本发明实施例提供了一种电子设备,设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如上任一项所述的窗体处理方法。
本发明实施例中,在视图层中引用新建的桥接层,将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层;在视图模型层中接收到窗体调用命令后引用所述桥接层,将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层;在所述桥接层中依据所述目标视图模型信息从所述对应关系中获取目标窗体信息,依据所述目标窗体信息创建并展示目标窗体。由此可知,本发明实施例中新建的桥接层可以作为视图层与视图模型层之间的桥梁,该桥接层可供视图层和视图模型层引用,视图层通过引用桥接层预先将视图模型信息与窗体信息的对应关系存储至桥接层,在视图模型层需要调用窗体但又不能直接引用视图层的情况下,视图模型层可以通过引用桥接层实现对窗体的调用。因此,本发明实施例的窗体处理方式保留了业务逻辑的代码与前端页面的代码分离的状态,满足了前后端分离开发的要求,处理过程更加简便。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例一的一种窗体处理方法的步骤流程图;
图2是本发明实施例二的一种窗体处理方法的步骤流程图;
图3是本发明实施例三的一种窗体处理装置的结构框图;
图4是本发明实施例的一种电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
参照图1,示出了本发明实施例一的一种窗体处理方法的步骤流程图。
本发明实施例的窗体处理方法包括以下步骤:
步骤101,在视图层中引用新建的桥接层,将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层。
本发明实施例的窗体调用方法可以应用于终端上,比如台式机、一体机、笔记本电脑、平板电脑,等等。
在MVVM框架中,Model层是数据模型层,View层是视图层,即可视化的界面,ViewModel层是视图模型层,是实现业务逻辑的部分。视图层可以对视图模型层进行引用,通过给视图模型层发送命令来执行处理数据的逻辑。但是视图模型层对视图层是无感知的,因此视图模型层是无法调用视图层的窗体的。针对该种情况,本发明实施例中新建一个桥接层,该桥接层作为视图层和视图模型层之间的桥梁,视图层和视图模型层均可以引用该桥接层,以使视图模型层可以经由桥接层调用视图层中的窗体。
视图层中包括多个窗体,每个窗体都对应一种视图模型层的业务逻辑,在视图层中具有每个窗体的窗体信息与视图模型信息的对应关系。窗体信息可以包括窗体的类型、窗体的实例等。视图模型信息可以包括视图模型的类型、视图模型的实例等。
在视图层中引用桥接层,将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层,因此在桥接层中可以存储视图模型信息与窗体信息的对应关系。
步骤102,在视图模型层中接收到窗体调用命令后引用所述桥接层,将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层。
当需要调用窗体时,用户在视图层中执行相应操作,视图层接收到用户的操作信息后向视图模型层发出对应的窗体调用命令,在该窗体调用命令中指定目标视图模型信息。
在视图模型层中接收到窗体调用命令后引用所述桥接层,将其中指定的目标视图模型信息传递至所述桥接层。
步骤103,在所述桥接层中依据所述目标视图模型信息从所述对应关系中查找目标窗体信息,依据所述目标窗体信息创建并展示目标窗体。
桥接层获取到视图模型层传递的目标视图模型信息后,从预先存储的视图模型信息与窗体信息的对应关系中查找该目标视图模型信息对应的窗体信息,查找到的窗体信息即为目标窗体信息。
桥接层依据目标窗体信息即可创建并展示目标窗体,实现对该目标窗体的调用。
本发明实施例中新建的桥接层可以作为视图层与视图模型层之间的桥梁,该桥接层可供视图层和视图模型层引用,视图层通过引用桥接层预先将视图模型信息与窗体信息的对应关系存储至桥接层,在视图模型层需要调用窗体但又不能直接引用视图层的情况下,视图模型层可以通过引用桥接层实现对窗体的调用。因此,该种窗体处理方式保留了业务逻辑的代码与前端页面的代码分离的状态,满足了前后端分离开发的要求,处理过程更加简便。
实施例二
参照图2,示出了本发明实施例二的一种窗体处理方法的步骤流程图。
本发明实施例的窗体处理方法包括以下步骤:
步骤201,新建一个桥接层。
桥接层可以供视图层和视图模型层引用。在桥接层中可以提供窗体注册方法、窗体获取方法等。其中,窗体注册方法用于注册视图层中的各个窗体。窗体获取方法用于视图模型层传递视图模型信息,并依据视图模型创建并展示对应的窗体。
在一种可选实施方式中,桥接层可以为一个common(公共)项目。项目是一组代码的统称,这一组代码可以实现一个完整的功能,可以是一个完整的程序,也可以是其中一个模块,项目的创立,是为了更好的组织管理这些代码。
步骤202,在视图层中引用所述桥接层,针对所述视图层中的每个窗体,将当前窗体注册到所述桥接层中,在注册时将当前窗体的窗体信息和视图模型信息的对应关系传递至所述桥接层。
视图层将其中的视图模型信息与窗体信息的对应关系传递至桥接层。本发明实施例中可以通过注册窗体的方式将视图模型信息与窗体信息的对应关系传递至桥接层。具体地,在视图层中引用所述桥接层,针对所述视图层中的每个窗体,将当前窗体注册到所述桥接层中,在注册时将当前窗体的窗体信息和视图模型信息的对应关系传递至所述桥接层。
在一种可选实施方式中,可以通过如下方式进行窗体注册:在所述视图层中创建全部窗体的基类,每个窗体均继承所述基类;针对每个窗体,调用所述基类的构造函数,在所述构造函数中调用所述窗体注册方法,将当前窗体的窗体信息和对应的视图模型信息传递至所述窗体注册方法中。
为了处理简便,本发明实施例中采用基类的方式,基类被定义为一个包含所有实体共性的class类型,继承该基类的类可以从该基类中继承所有信息。针对每个窗体在注册时,在基类的构造函数中调用桥接层中提供的窗体注册方法,将当前窗体的窗体信息和对应的视图模型信息传递至窗体注册方法中,注册后在桥接层即可得到当前窗体的窗体信息和对应的视图模型信息。
例如,构造函数的代码可以如下所示:
如上述代码所示,在构造函数BaseForm(ViewModelBase viewModel,BaseFormform)中,调用Common.RegistForm(viewModel,form)方法,传递至方法中的viewModel即为当前窗体对应的视图模型信息,form即为当前窗体的窗体信息。比如,如果当前窗体的窗体信息为student form,则对应的视图模型信息为student viewModel;如果当前窗体的窗体信息为class form,则对应的视图模型信息为class viewModel,等等。
在一种可选实施方式中,在桥接层中可以利用哈希表的键值key-value数据结构存储视图模型信息与窗体信息的对应关系,其中哈希表中的key用于存储视图模型信息,value用于存储窗体信息。
步骤203,在视图模型层中接收到窗体调用命令后引用所述桥接层,将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层。
视图层向视图模型层发出窗体调用命令,在该窗体调用命令中指定目标视图模型信息。视图模型层接收到窗体调用命令后,引用所述桥接层,将窗体调用命令中指定的目标视图模型信息传递至桥接层。
在一种可选实施方式中,在所述视图模型层中调用桥接层中提供的窗体获取方法,将所述目标视图模型信息传递至所述窗体获取方法中。例如,可以调用ViewModelBase_ShowDialog(ViewModelBase viewMode)方法,传递至方法中的viewModel即为目标视图模型信息。
比如,视图层给对应的后台视图模型层发送一个AddSutdent(增加学生)命令,那么在AddStudent命令中,会创建一个新的AddStudentViewModel的实例,从而指定目标视图模型信息。然后调用Common项目中的ViewModelBase_ShowDialog(ViewModelBaseviewMode)方法把AddStudentViewModel传给其中的viewMode参数。
步骤204,在所述桥接层中依据所述目标视图模型信息从所述对应关系中查找目标窗体信息,依据所述目标窗体信息创建并展示目标窗体。
在桥接层中得到目标视图模型信息,从存储的对应关系中查找该目标视图模型信息对应的目标窗体信息。桥接层依据所述目标窗体信息创建并展示目标窗体。
依据所述目标窗体信息创建并展示目标窗体的过程可以包括:依据所述目标窗体信息,利用反射机制创建目标窗体的窗体实例;调用所述窗体实例的窗体显示方法展示所述目标窗体。反射机制是在运行状态中,对于任意一个实体类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为反射机制。对于利用反射机制创建目标窗体的窗体实例的具体过程,本发明实施例在此不再详细论述。
例如,代码如下所示:
其中:
var formtype=VM_Form_Mapping[viewModel.GetType().FullName]表示根据目标视图模型信息获取目标窗体信息。
var form=(Window)Activator.CreateInstance(formtype)表示创建目标窗体的窗体实例。
form.DataContext=viewModel表示获取窗体要显示的具体数据。
var result=form.ShowDialog()表示展示窗体。
本发明实施例中,通过创建一个单独的项目用于注册所有窗体,该项目可以在View层和ViewModel层起到桥梁的作用,让ViewModel层在业务处理的过程随时对窗体进行调用。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
实施例三
参照图3,示出了本发明实施例三的一种窗体处理装置的结构框图。
本发明实施例的窗体处理装置包括:
第一传递模块301,用于在视图层中引用新建的桥接层,将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层。
第二传递模块302,用于在视图模型层中接收到窗体调用命令后引用所述桥接层,将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层。
创建模块303,用于在所述桥接层中依据所述目标视图模型信息从所述对应关系中查找目标窗体信息,依据所述目标窗体信息创建并展示目标窗体。
在一种可选实施方式中,所述第一传递模块包括:注册单元,用于针对所述视图层中的每个窗体,将当前窗体注册到所述桥接层中,在注册时将所述当前窗体的窗体信息和视图模型信息的对应关系传递至所述桥接层。
在一种可选实施方式中,所述桥接层中定义有窗体注册方法;所述注册单元包括:基类创建子单元,用于在所述视图层中创建全部窗体的基类,每个窗体均继承所述基类;方法调用子单元,用于针对每个窗体,调用所述基类的构造函数,在所述构造函数中调用所述窗体注册方法,将当前窗体的窗体信息和对应的视图模型信息传递至所述窗体注册方法中。
在一种可选实施方式中,所述桥接层中定义有窗体获取方法;所述第二传递模块包括:调用单元,用于在所述视图模型层中调用所述窗体获取方法,将所述目标视图模型信息传递至所述窗体获取方法中。
在一种可选实施方式中,所述创建模块包括:实例创建单元,用于依据所述目标窗体信息,利用反射机制创建目标窗体的窗体实例;窗体展示单元,用于调用所述窗体实例的窗体显示方法展示所述目标窗体。
在一种可选实施方式中,在所述桥接层中利用哈希表的键值key-value数据结构存储视图模型信息与窗体信息的对应关系,其中哈希表中的key用于存储视图模型信息,value用于存储窗体信息。
在一种可选实施方式中,所述桥接层为一个公共common项目。
本发明实施例中新建的桥接层可以作为视图层与视图模型层之间的桥梁,该桥接层可供视图层和视图模型层引用,视图层通过引用桥接层预先将视图模型信息与窗体信息的对应关系存储至桥接层,在视图模型层需要调用窗体但又不能直接引用视图层的情况下,视图模型层可以通过引用桥接层实现对窗体的调用。因此,该种窗体处理方式保留了业务逻辑的代码与前端页面的代码分离的状态,满足了前后端分离开发的要求,处理过程更加简便。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
所述窗体处理装置包括处理器和存储器,上述第一传递模块、第二传递模块和创建模块,以及第一传递模块包括的注册单元,注册单元包括的基类创建子单元和方法调用子单元,第二传递模块包括的调用单元,创建模块包括的实例创建单元和窗体展示单元等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来在视图层中引用新建的桥接层,将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层;在视图模型层中接收到窗体调用命令后引用所述桥接层,将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层;在所述桥接层中依据所述目标视图模型信息从所述对应关系中获取目标窗体信息,依据所述目标窗体信息创建并展示目标窗体。新建的桥接层可以作为视图层与视图模型层之间的桥梁,该桥接层可供视图层和视图模型层引用,视图层通过引用桥接层预先将视图模型信息与窗体信息的对应关系存储至桥接层,在视图模型层需要调用窗体但又不能直接引用视图层的情况下,视图模型层可以通过引用桥接层实现对窗体的调用。因此窗体处理方式保留了业务逻辑的代码与前端页面的代码分离的状态,满足了前后端分离开发的要求,处理过程更加简便。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述窗体调用方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述窗体调用方法。
本发明实施例提供了一种电子设备,设备的结构框图如图4所示。电子设备包括至少一个处理器401、以及与处理器401连接的至少一个存储器402、总线403;其中,处理器401、存储器402通过总线403完成相互间的通信;处理器401用于调用存储器402中的程序指令,以执行上述的窗体调用方法。本文中的电子设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
在视图层中引用新建的桥接层,将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层;
在视图模型层中接收到窗体调用命令后引用所述桥接层,将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层;
在所述桥接层中依据所述目标视图模型信息从所述对应关系中查找目标窗体信息,依据所述目标窗体信息创建并展示目标窗体。
可选地,所述将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层,包括:针对所述视图层中的每个窗体,将当前窗体注册到所述桥接层中,在注册时将所述当前窗体的窗体信息和视图模型信息的对应关系传递至所述桥接层。
可选地,所述桥接层中定义有窗体注册方法;所述针对所述视图层中的每个窗体,将当前窗体注册到所述桥接层中,在注册时将所述当前窗体的窗体信息和视图模型信息的对应关系传递至所述桥接层,包括:在所述视图层中创建全部窗体的基类,每个窗体均继承所述基类;针对每个窗体,调用所述基类的构造函数,在所述构造函数中调用所述窗体注册方法,将当前窗体的窗体信息和对应的视图模型信息传递至所述窗体注册方法中。
可选地,所述桥接层中定义有窗体获取方法;所述将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层,包括:在所述视图模型层中调用所述窗体获取方法,将所述目标视图模型信息传递至所述窗体获取方法中。
可选地,所述依据所述目标窗体信息创建并展示目标窗体,包括:依据所述目标窗体信息,利用反射机制创建目标窗体的窗体实例;调用所述窗体实例的窗体显示方法展示所述目标窗体。
可选地,在所述桥接层中利用哈希表的键值key-value数据结构存储视图模型信息与窗体信息的对应关系,其中哈希表中的key用于存储视图模型信息,value用于存储窗体信息。
可选地,所述桥接层为一个公共common项目。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
在一个典型的配置中,设备包括一个或多个处理器(CPU)、存储器和总线。设备还可以包括输入/输出接口、网络接口等。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种窗体处理方法,其特征在于,所述方法包括:
在视图层中引用新建的桥接层,将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层;
在视图模型层中接收到窗体调用命令后引用所述桥接层,将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层;
在所述桥接层中依据所述目标视图模型信息从所述对应关系中查找目标窗体信息,依据所述目标窗体信息创建并展示目标窗体。
2.根据权利要求1所述的方法,其特征在于,所述将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层,包括:
针对所述视图层中的每个窗体,将当前窗体注册到所述桥接层中,在注册时将所述当前窗体的窗体信息和视图模型信息的对应关系传递至所述桥接层。
3.根据权利要求2所述的方法,其特征在于,所述桥接层中定义有窗体注册方法;所述针对所述视图层中的每个窗体,将当前窗体注册到所述桥接层中,在注册时将所述当前窗体的窗体信息和视图模型信息的对应关系传递至所述桥接层,包括:
在所述视图层中创建全部窗体的基类,每个窗体均继承所述基类;
针对每个窗体,调用所述基类的构造函数,在所述构造函数中调用所述窗体注册方法,将当前窗体的窗体信息和对应的视图模型信息传递至所述窗体注册方法中。
4.根据权利要求1所述的方法,其特征在于,所述桥接层中定义有窗体获取方法;所述将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层,包括:
在所述视图模型层中调用所述窗体获取方法,将所述目标视图模型信息传递至所述窗体获取方法中。
5.根据权利要求1所述的方法,其特征在于,所述依据所述目标窗体信息创建并展示目标窗体,包括:
依据所述目标窗体信息,利用反射机制创建目标窗体的窗体实例;
调用所述窗体实例的窗体显示方法展示所述目标窗体。
6.根据权利要求1所述的方法,其特征在于,在所述桥接层中利用哈希表的键值key-value数据结构存储视图模型信息与窗体信息的对应关系,其中哈希表中的key用于存储视图模型信息,value用于存储窗体信息。
7.根据权利要求1所述的方法,其特征在于,所述桥接层为一个公共common项目。
8.一种窗体处理装置,其特征在于,所述装置包括:
第一传递模块,用于在视图层中引用新建的桥接层,将所述视图层中的视图模型信息与窗体信息的对应关系传递至所述桥接层;
第二传递模块,用于在视图模型层中接收到窗体调用命令后引用所述桥接层,将所述窗体调用命令中指定的目标视图模型信息传递至所述桥接层;
创建模块,用于在所述桥接层中依据所述目标视图模型信息从所述对应关系中查找目标窗体信息,依据所述目标窗体信息创建并展示目标窗体。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在的设备执行如权利要求1至7任一项所述的窗体处理方法。
10.一种电子设备,设备包括至少一个处理器、以及与处理器连接的至少一个存储器、总线;其中,所述处理器、所述存储器通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的程序指令,以执行如权利要求1-7中任一项所述的窗体处理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910888088.8A CN112527249A (zh) | 2019-09-19 | 2019-09-19 | 窗体处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910888088.8A CN112527249A (zh) | 2019-09-19 | 2019-09-19 | 窗体处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112527249A true CN112527249A (zh) | 2021-03-19 |
Family
ID=74974197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910888088.8A Pending CN112527249A (zh) | 2019-09-19 | 2019-09-19 | 窗体处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112527249A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895581B1 (en) * | 2000-03-30 | 2005-05-17 | Microsoft Corporation | Replaceable classes and virtual constructors for object-oriented programming languages |
CN105490842A (zh) * | 2015-11-30 | 2016-04-13 | 用友网络科技股份有限公司 | 一种在线服务系统中基于mvvm模型管理对话的方法 |
CN108132942A (zh) * | 2016-11-30 | 2018-06-08 | 北京国双科技有限公司 | 一种页面生成方法及终端 |
-
2019
- 2019-09-19 CN CN201910888088.8A patent/CN112527249A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6895581B1 (en) * | 2000-03-30 | 2005-05-17 | Microsoft Corporation | Replaceable classes and virtual constructors for object-oriented programming languages |
CN105490842A (zh) * | 2015-11-30 | 2016-04-13 | 用友网络科技股份有限公司 | 一种在线服务系统中基于mvvm模型管理对话的方法 |
CN108132942A (zh) * | 2016-11-30 | 2018-06-08 | 北京国双科技有限公司 | 一种页面生成方法及终端 |
Non-Patent Citations (1)
Title |
---|
LIUYONG111: "WPF 介绍一种在WVVM模式下弹窗子窗体的方法", pages 1 - 4, Retrieved from the Internet <URL:https://www.cnblogs.com/czly/archive/2018/09/13/9640033.html> * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170161032A1 (en) | Running applications using pre-generated components | |
CN105426223B (zh) | 应用加载方法和装置 | |
US20140089893A1 (en) | Dynamically building locale objects or subsections of locale objects based on historical data | |
US20150331923A1 (en) | Crm-based data migration system and method | |
US10600221B2 (en) | System, method, and electronic device for information duplication and machine-readable storage medium | |
CN105550345A (zh) | 文件操作方法和装置 | |
CN105488125A (zh) | 页面访问方法和装置 | |
US20120079009A1 (en) | Method and apparatus for choosing resources based on context and inheritance | |
CN110941614A (zh) | 表单生成方法、装置、电子设备及计算机可读存储介质 | |
US11625408B2 (en) | Systems and methods for expedited large file processing | |
CN114238808A (zh) | 页面展示方法、装置、计算机设备和存储介质 | |
CN113434063B (zh) | 一种信息显示方法、装置及设备 | |
US9141353B2 (en) | Dynamically building locale objects at run-time | |
CN110489106A (zh) | 一种项目初始化代码的生成方法、装置、介质和电子设备 | |
CN109977317B (zh) | 数据查询方法及装置 | |
CN112527249A (zh) | 窗体处理方法、装置、电子设备及存储介质 | |
CN113656041A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN113448578A (zh) | 页面数据处理方法、处理系统、电子设备和可读存储介质 | |
US20130151964A1 (en) | Displaying dynamic and shareable help data for images a distance from a pointed-to location | |
US11599398B2 (en) | Method for combining unified matters in personal workspace and system using the same | |
US20240070304A1 (en) | Methods and systems for model management | |
CN114371864A (zh) | 信息更新方法、装置、电子设备和存储介质 | |
CN115202720A (zh) | 数据显示方法、装置、设备及存储介质 | |
CN116795951A (zh) | 业务处理方法、装置、电子设备及存储介质 | |
US9778917B2 (en) | Dynamically building subsections of locale objects at run-time |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |