本发明专利技术提供了一种基于配置的在界面元素之间传递消息的方法,解决了动态创建的界面元素之间的交互和控制问题。所述方法包括:基于XML配置;观察者模式;发布订阅模式;完全松耦合;消息可自由扩展;界面元素基于特定接口。本发明专利技术大量应用在软件界面需要动态配置、自由组合的软件系统中,通过配置可以设置任意界面元素之间进行任意形式的消息通讯,具有很好的推广使用价值。
A configuration based method for communicating messages between elements of an interface
The invention provides a configuration based method for transferring messages between interface elements, which solves the interaction and control problems between dynamically created interface elements. The methods include: Based on the XML configuration; observer mode; publish subscribe mode; completely loose coupling; messages can be freely extended; interface elements based on specific interfaces. The present invention application software system needs dynamic configuration, free combination in the software interface, can be any form of message communication between any set of interface elements through the configuration, has a very good promotional value.
【技术实现步骤摘要】
本专利技术涉及一种计算机应用技术,具体说是提供了一种基于配置的在界面元素之 间传递消息的方法,解决了界面元素之间如何灵活高效稳定的发布、订阅、接受、处理消息。
技术介绍
现有的管理信息系统大多没有实现界面元素消息的可配置管理,需要进行消息交 互的界面元素一般是高度耦合的,界面元素间传递消息需根据需求不断改变代码,致使灵 活性不高,效率低下。故提出,用XML配 置界面元素和界面消息,按不同需求确定谁发布消息,谁订阅消息等,实现界面元素之间灵 活、高效、稳定的传递消息。
技术实现思路
本专利技术提供了。本专利技术的目的是按以下方式实现的,包括界面元素和界面消息基于XML配置,消 息传递使用观察者模式和发布订阅模式,界面元素之间完全松耦合,界面元素消息可自由 扩展,界面元素基于消息接口。用XML配置界面元素和界面消息,按不同需求确定谁发布何 种消息,谁订阅此种消息等,实现界面元素之间灵活、高效、稳定的消息传递。包括如下内容1)参与消息过程的界面元素和界面消息的类型基于XML进行配置;界面元素消息 可自由扩展;界面元素基于消息接口 ;通过消息处理服务类,使用观察者模式和发布订阅 模式解耦界面元素;界面元素之间完全松耦合。2)参与消息过程的界面元素和界面消息的类型基于XML进行配置。其定义代码为< xml version二"1.0〃 encoding=〃utf-8〃 > 〈Messages〉〈Message ID='' Type=' ' Publisher=,' Subscripers=,,,/> 〈/Messages〉3)界面元素消息可自由扩展。扩展方式是从消息抽象基类派生新的消息类。消息抽象基类实现代码为public abstract class BIMessage {III <summary) III消息描述 III </summary)public virtual string Description { get; set; }}4)界面元素实现消息接口。消息接口实现代码为delegate void PublishMessage(IEleraent sender, BIMessage message);public interface IElement{III <summary)III处理自己订阅的消息III </summary)void DealMessage(IElement sender, BIMessage message);III <summary) III对外发布消息 III </summary>public PublishMessage OnMessagePublish;}5)通过消息处理服务类,使用观察者模式和发布订阅模式解耦界面元素。界面元 素发布消息后,由消息处理服务类负责把消息分发给相应的界面元素。消息信息(对应于XML配置信息)定义代码为public class ElementMessageInfo{III <summary) III消息的I DIII </summary)public string ID { get; set; }III III III<summary) 消息实现类全称 </summary)public string Type { get; set; }III <summary)///发布消息的界面元素III </sumraary>public IElement Publisher { get; set; } III <summary)III订阅消息的界面元素的ID III </summary)public List< IElement> Subscripers { get; set; }} 〃消息处理服务类定义代码为public class ElementMessageService{Public ElementMessageService() {//从XML配置信息巾解析出所有消息,并由本类接受各界面元素发布//的消息Messages = XMLParser. ParseMessage();foreach (ElementMessageInfo info in Messages){Tnfo. Publisher. OnMessagePublish += DistributeMessage;1.)III <summary) III所有的消息 /// </summary>public List<ElementMessageInfo> Messages{get;set;}III<summary)III向所有订阅者分发消息III</summary>III<param name="sender"〉消息发布者</param>III<param name~"msg" > S</param> private void DistributeMessage(IElement sender, BIMessage msg){ElementMessageInfo msglnfo = GetMessageInfo(sender, msg);foreach (IElement subscripter in msglnfo. Subscripers) {subscripter. DealMessage(sender, msg);}}private ElementMessageInfo GetMessageInfo (IElement sender, BIMessagemsg){ElementMessageInfo rtn = null;foreach (ElementMessageInfo msglnfo in Messages){if (msglnfo. Publisher == sender && msg. GetType(). Ful!Name ==msglnfo. Type){rtn = msglnfo; break;ι}return rtn; }ι6)界面元素之间完全松耦合。实现方式是界面元素实现消息接口,消息处理服务 把所有界面元素视作具有消息发布和订阅功能的消息接口。本专利技术的优异效果目前本专利技术大量应用在政府行业以及大型综合型集团企业 中,不仅能让界面元素之间灵活、高效、稳定的传递消息,并且能够在不同需求下快速、高效 修改配置,进行界面元素之间传递消息。该专利技术使得信息化系统的应用得到良好支持,具有 很高的推广和经济价值。具体实施例方式为使本专利技术的优点、目的更容易理解、易懂,下面就具体的实施方式做一个详细说 明。1)定义消息从消息基类BIMessage派生新的消息,添加消息内容等属性。例如Public FiscalYearChangedMessage BIMessage {Public string NewFiscalYear{get;set;} Public string OldFiscalYear{get;set;}}2)定义界面元素界面元素需本文档来自技高网...
【技术保护点】
1.一种基于配置的在界面元素之间传递消息的方法,其特征在于,内容包括:1)参与消息过程的界面元素和界面消息的类型基于XML进行配置;2)界面元素消息可自由扩展;3)界面元素基于消息接口;4)通过消息处理服务类,使用观察者模式和发布订阅模式解耦界面元素;5)界面元素之间完全松耦合;1)参与消息过程的界面元素和界面消息的类型基于XML进行配置;其定义代码如下:2)“界面元素消息可自由扩展”,是从消息抽象基类派生新的消息类,消息抽象基类实现代码为:3)“界面元素实现消息接口”,其特征在于,界面元素实现消息接口,消息接口实现代码为:4)“通过消息处理服务类,使用观察者模式和发布订阅模式解耦界面元素”,界面元素发布消息后,由消息处理服务类负责把消息分发给相应的界面元素,对应于XML配置信息的定义代码为:5)“界面元素之间完全松耦合”,界面元素实现消息接口,消息处理服务把所有界面元素都视作具有消息发布和订阅功能的消息接口。
【技术特征摘要】
【专利技术属性】
技术研发人员:王宏涛,王涛威,
申请(专利权)人:浪潮集团山东通用软件有限公司,
类型:发明
国别省市:88
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。