CN103377041A - 一种功能栏的实现方法与装置 - Google Patents
一种功能栏的实现方法与装置 Download PDFInfo
- Publication number
- CN103377041A CN103377041A CN201210122071XA CN201210122071A CN103377041A CN 103377041 A CN103377041 A CN 103377041A CN 201210122071X A CN201210122071X A CN 201210122071XA CN 201210122071 A CN201210122071 A CN 201210122071A CN 103377041 A CN103377041 A CN 103377041A
- Authority
- CN
- China
- Prior art keywords
- plug
- unit
- class
- function
- hurdle
- 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
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明适用于计算机技术领域,提供一种功能栏的实现方法和装置,所述防范包括:创建包含插件共同属性的基类;针对功能栏上的每个插件创建一个继承于所述基类的插件子类;创建一个管理所有插件子类的管理接口类。本发明方法通过将功能栏上包含的各个应用的界面元素视为一个插件,根据各个插件的共同属性建立基类,再为每个插件创建继承于该基类的插件子类,通过统一的管理接口管理所有的插件子类,在后期产品维护时通过修改对应的插件子类即可,这种经过良好分工的插件化的功能栏实现方法扩展性高,可以按照客户需求方便地维护和完善功能栏。
Description
技术领域
本发明属于计算机技术领域,尤其涉及一种功能栏的实现方法与装置。
背景技术
功能栏(DockBar)是一个显示工具栏,工具栏内有用户所需的各个应用,该工具栏在不使用时也可以贴边隐藏,当用户将鼠标移至DockBar附近时DockBar又会显示出来,用户可以根据需要选择其中的应用,DockBar的这种显示操作方式在很多软件中得到了应用。
但是目前在开发DockBar时,将其所有的功能应用、界面显示视为一个整体进行统一代码编写,这样编写出来的整块代码没有进行很好的划分,一些小需求的修改也可能要大费周章,甚至是牵一发而动全身。由于现在用户对DockBar的要求也越来越高,开发者为了保证产品的竞争力,需要根据用户和市场的需求不断对DockBar进行改进和完善,包括功能更改、应用添加、界面显示等等,但是对于这么一整块没有经过分工的代码,不利于后续维护人员理解和修改,很多时候只能让代码原创者来修改,这样就不便于后期代码维护与改进。
发明内容
本发明实施例提供以一种功能栏的实现方法,将功能栏上的界面元素划分成各个插件,每个插件维护自己的界面显示以及功能实现,旨在解决现有开发功能栏时没有按照功能划分来编写代码,而导致后期不便对功能栏进行维护和更新的技术问题。
本发明实施例提供了一种功能栏的实现方法,所述方法包括下述步骤:
创建包含插件共同属性的基类;
针对功能栏上的每个插件创建一个继承于所述基类的插件子类;
创建一个管理所有插件子类的管理接口类。
本发明实施例提供一种功能栏的实现装置,所述装置包括:
基类创建单元,用于创建包含插件共同属性的基类;
子类创建单元,用于针对功能栏上的每个插件创建一个继承于所述基类的插件子类;
接口创建单元,用于创建一个管理所有插件子类的管理接口类。
本发明实施例提供了一种功能栏的实现方法及装置,所述方法将功能栏上包含的各个应用的界面元素视为一个插件,根据各个插件的共同属性建立基类,再为每个插件创建继承于该基类的插件子类,通过统一的管理接口管理所有的插件子类,在后期产品维护时通过修改对应的插件子类即可,这种经过良好分工的插件化的功能栏实现方法扩展性高,可以按照客户需求方便地维护和完善功能栏。
附图说明
图1是本发明第一实施例提供的一种功能栏的实现方法流程图;
图2是本本发明第一实施例提供的一种实现功能栏的系统结构图;
图3是本发明第二实施例提供的一种功能栏的实现方法流程图;
图4是本发明第二实施例提供的一种实现功能栏的系统结构图;
图5是本发明第三实施例提供的一种功能栏的实现装置的结构方框图;
图6是本发明第四实施例提供的一种功能栏的实现装置的结构方框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一:
图1示出了本发明第一实施例提供的一种功能栏的实现方法的流程,图2示出了本发明第一实施例提供的一种实现功能栏的系统结构,下面参照图2对图1中的步骤做出具体描述。
在步骤S101中,创建包含插件共同属性的基类。
在本发明实施例中,在开发功能栏代码前首先需要将功能栏上的各个应用的界面元素视为各个插件,以插件为单位来维护各个应用的界面显示与功能实现。所述插件的共同属性是指维护插件所需要的共同操作,比如通过Init方法初始化各个插件,通过GetFrame方法将插件放置在功能栏上,通过SetMode方法将设置插件的显示模式,譬如上下左右四种显示模式,在本步骤中,以插件的这些共同操作方法作为成员方法来创建基类,如图2所示的PluginBase。
在步骤S102中,针对功能栏上的每个插件创建一个继承于所述基类的插件子类。
在本发明实施例中,功能栏上显示的是各个应用的图标,对于每一个应用通过创建一个插件子类来实现相应功能,例如图2中所示的插件子类包括LaunchPlugin、FixPlugin、HeadPlugin、SwitchPlugin、TopbarPlugin等等,所述插件子类继承于上述基类(PluginBase),可以使用基类中的成员方法,例如上述的Init方法、GetFrame方法、SetMode方法等等,另外,在每个插件子类中添加相应应用特有的操作方法及成员变量即可,比如启动插件子类对应应用的方法等等。
在步骤S103中,创建一个管理所有插件子类的管理接口类。
在本发明实施例中,由于每个应用都对应一个插件子类,若需要对每个插件子类进行统一修改,那么就需要修改每一个插件子类中对应的方法或变量,比如需要初始化各个插件子类时,就需要调用每个插件子类中的Init方法,显然是比较耗费工作量的,为此,本发明实施例再创建一个管理接口类(PluginMgr)用于统一管理所有的插件子类,为上层功能栏提供一个接口,通过该接口就可以管理所有的插件子类。
实施例二:
图3示出了本发明第二实施例提供的一种功能栏的实现方法的流程,图4示出了本发明第二实施例提供的一种实现功能栏的系统结构,下面参照图4对图3中的步骤做出具体描述。
在步骤S301中,创建包含插件共同属性的基类。
在步骤S302中,针对功能栏上的每个插件创建一个继承于所述基类的插件子类。
在步骤S303中,创建一个管理所有插件子类的管理接口类。
上述3个步骤与实施例中步骤S101-S103相同,此处不再赘述。
在步骤S304中,创建一个控制所述管理接口类的工具栏类。
在本发明实施例中,所述的工具栏类是一个控制主体,即图2所示的Dock_Bar,通过管理接口类提供的接口管理各个插件子类。
在步骤S305中,按照功能栏功能需求删除、添加或修改相应的插件子类。
由于用户和市场对功能栏的需求在不断变化,后期需要对其进行维护与改进,在本发明实施例中,每个插件子类只是维护自身应用的界面显示以及功能实现,当开发者需要修改功能栏时,比如更改某个应用的图标的大小,此时仅需修改所述应用图标对应的插件子类中关于图标大小显示的变量和方法即可,该插件子类实例化后就会显示出修改后的图标;又如若需要在功能栏中添加或删除一个应用,此时仅需基于上述基类创建一个插件子类,或是删除所述应用对应的插件子类即可。显然本发明实施例通过将功能栏中的每个应用视为一个插件,并通过插件子类来维护功能栏,比现有技术中将功能栏视为一个整体进行代码开发和后期维护要简便许多。
在步骤S306中,工具栏类通过管理接口类初始化所有插件子类,各个插件子类对应的界面元素显示在功能栏相应的位置上。
在本发明实施例中,各个部分组建完毕后需要开始执行操作,首先需要进行插件初始化,才能显示出各个应用图标。实现时,用户将鼠标移至功能栏附近时,所述工具栏类(Dock_Bar)向管理接口类(PluginMgr)发出初始化请求,管理接口类通过InitAllPlugins方法调用所有插件子类中的Init方法,各个插件子类初始化后,插件子类对应的图标显示在功能栏适当的位置上。
在步骤S307中,工具栏类通过管理接口类销毁所有插件子类,功能栏界面隐藏。
本步骤是本发明实施例的优选步骤,当用户无需使用功能栏上的应用时,将鼠标离开功能栏,所述工具栏类(Dock_Bar)向管理接口类(PluginMgr)发出销毁请求,管理接口类通过UninitAllPlugins方法调用所有插件子类中的Uninit方法,各个插件子类销毁后,各个子类对应图标就会消失,效果等同于功能栏隐藏。
实施例三:
图5示出了本发明第三实施例提供的一种功能栏的实现装置的结构,为了便于说明仅示出了与本发明实施例相关的部分。
所实现装置包括:
基类创建单元501,用于创建包含插件共同属性的基类;
子类创建单元502,用于针对功能栏上的每个插件创建一个继承于所述基类的插件子类;
接口创建单元503,用于创建一个管理所有插件子类的管理接口类。
在本实施例中,基类创建单元创建一个包含插件共同属性的基类,所述插件的共同属性是指维护插件所需要的共同操作,比如通过Init方法初始化各个插件,通过GetFrame方法将插件放置在功能栏上,通过SetMode方法将设置插件的显示模式,譬如上下左右四种显示模式;子类创建单元根据应用需求创建继承于所述基类的子类,每个应用图标对应一个独立子类,所述子类可以使用基类中的成员方法,此外,只需在每个插件子类中添加相应应用特有的操作方法及成员变量即可;最后,接口创建单元需要创建一个管理接口类,便于对所有子类进行统一管理。
实施例四:
图6示出了本发明第三实施例提供的一种功能栏的实现装置的结构,为了便于说明仅示出了与本发明实施例相关的部分。所述实现装置包括:
基类创建单元601,用于创建包含插件共同属性的基类;
子类创建单元602,用于针对功能栏上的每个插件创建一个继承于所述基类的插件子类;
接口创建单元603,用于创建一个管理所有插件子类的管理接口类。
上述三个组成单元与实施例三相同,此处不再赘述。工具栏创建单元604,用于创建一个控制所述管理接口类的工具栏类。本实施例中,所述的工具栏类是一个控制主体,通过管理接口类提供的接口管理各个插件子类。子类修改单元605,用于按照功能栏功能需求删除、添加或修改相应的插件子类。本实施例中,由于用户和市场对功能栏的需求在不断变化,后期需要对其进行维护与改进,当开发者需要修改功能栏时,比如更改某个应用的图标的大小,此时仅需修改所述应用图标对应的插件子类中关于图标大小显示的变量和方法即可,该插件子类实例化后就会显示出修改后的图标;又如若需要在功能栏中添加或删除一个应用,此时仅需基于上述基类创建一个插件子类,或是删除所述应用对应的插件子类即可。显然本发明实施例通过将功能栏中的每个应用视为一个插件,并通过插件子类来维护功能栏,比现有技术中将功能栏视为一个整体进行代码开发和后期维护要简便许多。
界面显示单元606,用于工具栏类通过管理接口类初始化所有插件子类,各个插件子类对应的界面元素显示在功能栏相应的位置上。本实施例中,实现时,用户将鼠标移至功能栏附近时,所述工具栏类向管理接口类发出初始化请求,管理接口类通过InitAllPlugins方法调用所有插件子类中的Init方法,各个插件子类初始化后,插件子类对应的图标显示在功能栏适当的位置上。
界面销毁单元607,用于工具栏类通过管理接口类销毁所有插件子类,功能栏界面隐藏。本实施例中,当用户无需使用功能栏上的应用时,将鼠标离开功能栏,所述工具栏类向管理接口类发出销毁请求,管理接口类通过UninitAllPlugins方法调用所有插件子类中的Uninit方法,各个插件子类销毁后,各个子类对应图标就会消失,效果等同于功能栏隐藏。
从上述技术方案可看出,本发明实施例中,将功能栏上包含的各个应用的界面元素视为一个插件,根据各个插件的共同属性建立基类,再为每个插件创建继承于该基类的插件子类,通过统一的管理接口管理所有的插件子类,在后期产品维护时通过修改对应的插件子类即可,这种经过良好分工的插件化的功能栏实现方法扩展性高,可以按照客户需求方便地维护和完善功能栏。
本领域普通技术人员可以理解,实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以在存储于一计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘、光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种功能栏的实现方法,其特征在于,所述方法包括下述步骤:
创建包含插件共同属性的基类;
针对功能栏上的每个插件创建一个继承于所述基类的插件子类;
创建一个管理所有插件子类的管理接口类。
2.如权利要求1所述的一种功能栏的实现方法,其特征在于,在创建一个管理所有插件子类的管理接口类步骤之后还包括下述步骤:
创建一个控制所述管理接口类的工具栏类。
3.如权利要求2所述的一种功能栏的实现方法,其特征在于,在创建一个控制所述管理接口类的工具栏类步骤之后还包括下述步骤:
按照功能栏功能需求删除、添加或修改相应的插件子类。
4.如权利要求3所述的一种功能栏的实现方法,其特征在于,在按照功能栏功能需求删除、添加或修改相应的插件子类步骤之后包括下述步骤:
工具栏类通过管理接口类初始化所有插件子类,各个插件子类对应的界面元素显示在功能栏相应的位置上。
5.如权利要求4所述的一种功能栏的实现方法,其特征在于,在工具栏类通过管理接口类初始化所有插件子类,各个插件子类对应的界面元素显示在功能栏相应的位置上步骤之后还包括下述步骤:
工具栏类通过管理接口类销毁所有插件子类,功能栏界面隐藏。
6.一种功能栏的实现装置,其特征在于,所述装置包括:
基类创建单元,用于创建包含插件共同属性的基类;
子类创建单元,用于针对功能栏上的每个插件创建一个继承于所述基类的插件子类;
接口创建单元,用于创建一个管理所有插件子类的管理接口类。
7.如权利要求6所述的一种功能栏的实现装置,其特征在于,所述装置还包括:
工具栏创建单元,用于创建一个控制所述管理接口类的工具栏类。
8.如权利要求7所述的一种功能栏的实现装置,其特征在于,所述装置还包括:
子类修改单元,用于按照功能栏功能需求删除、添加或修改相应的插件子类。
9.如权利要求8所述的一种功能栏的实现装置,其特征在于,所述装置还包括:
界面显示单元,用于工具栏类通过管理接口类初始化所有插件子类,各个插件子类对应的界面元素显示在功能栏相应的位置上。
10.如权利要求9所述的一种功能栏的实现装置,其特征在于,所述装置还包括:
界面销毁单元,用于工具栏类通过管理接口类销毁所有插件子类,功能栏界面隐藏。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210122071XA CN103377041A (zh) | 2012-04-24 | 2012-04-24 | 一种功能栏的实现方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210122071XA CN103377041A (zh) | 2012-04-24 | 2012-04-24 | 一种功能栏的实现方法与装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103377041A true CN103377041A (zh) | 2013-10-30 |
Family
ID=49462208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210122071XA Pending CN103377041A (zh) | 2012-04-24 | 2012-04-24 | 一种功能栏的实现方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103377041A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866287A (zh) * | 2014-02-20 | 2015-08-26 | 腾讯科技(北京)有限公司 | 一种生成功能栏的方法和装置 |
CN106406834A (zh) * | 2015-07-30 | 2017-02-15 | 中兴通讯股份有限公司 | 一种管理应用系统的方法、装置和系统 |
CN109977670A (zh) * | 2019-03-12 | 2019-07-05 | 福建天晴数码有限公司 | 基于插件加载的安卓应用安全监测方法、存储介质 |
CN110531981A (zh) * | 2019-08-27 | 2019-12-03 | 珠海格力智能装备有限公司 | 视觉软件系统及其应用方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6459441B1 (en) * | 1999-03-03 | 2002-10-01 | Dassault Systemes | Software interface |
CN1816049A (zh) * | 2005-02-04 | 2006-08-09 | 微软公司 | 分布式应用程序的面向对象和面向服务的表示之间的映射 |
CN101540828A (zh) * | 2009-04-23 | 2009-09-23 | 中山大学 | 一种基于面向对象的机顶盒后台频道开发系统及方法 |
-
2012
- 2012-04-24 CN CN201210122071XA patent/CN103377041A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6459441B1 (en) * | 1999-03-03 | 2002-10-01 | Dassault Systemes | Software interface |
CN1816049A (zh) * | 2005-02-04 | 2006-08-09 | 微软公司 | 分布式应用程序的面向对象和面向服务的表示之间的映射 |
CN101540828A (zh) * | 2009-04-23 | 2009-09-23 | 中山大学 | 一种基于面向对象的机顶盒后台频道开发系统及方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866287A (zh) * | 2014-02-20 | 2015-08-26 | 腾讯科技(北京)有限公司 | 一种生成功能栏的方法和装置 |
CN106406834A (zh) * | 2015-07-30 | 2017-02-15 | 中兴通讯股份有限公司 | 一种管理应用系统的方法、装置和系统 |
CN109977670A (zh) * | 2019-03-12 | 2019-07-05 | 福建天晴数码有限公司 | 基于插件加载的安卓应用安全监测方法、存储介质 |
CN110531981A (zh) * | 2019-08-27 | 2019-12-03 | 珠海格力智能装备有限公司 | 视觉软件系统及其应用方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20200133742A1 (en) | Data model api for live applications in a cloud collaboration platform | |
Gawer | Bridging differing perspectives on technological platforms: Toward an integrative framework | |
CN105144063B (zh) | 软件应用的自动保存模式及手动保存模式 | |
US7984115B2 (en) | Extensible application platform | |
US20100251129A1 (en) | Data consumption framework for semantic objects | |
US9239707B2 (en) | Model framework for applications | |
CN105247470B (zh) | 用于显示多工作区的多个显示器 | |
US20080209390A1 (en) | Pluggable model elements | |
CN105487864A (zh) | 代码自动生成的方法和装置 | |
CN101382887A (zh) | 一种调整界面布局的方法及装置 | |
CN103339600A (zh) | 立即远程呈现 | |
CN103718155A (zh) | 运行时系统 | |
Blouin et al. | Combining aspect-oriented modeling with property-based reasoning to improve user interface adaptation | |
CN107679832A (zh) | 任务管理方法、装置和服务器 | |
EP2992527A1 (en) | Second screen view with multitasking | |
CN103377041A (zh) | 一种功能栏的实现方法与装置 | |
CN111754305A (zh) | 产品定制方法、装置、设备和存储介质 | |
CN111045707B (zh) | 小程序的更新方法、装置、计算机设备和存储介质 | |
TW201432470A (zh) | 與電子裝置之遠端互動 | |
CN107506200A (zh) | 一种屏幕内容切换方法、终端及计算机可读存储介质 | |
US20090132915A1 (en) | View selection and switching | |
US20180090027A1 (en) | Interactive tutorial support for input options at computing devices | |
CN105335228B (zh) | 一种内存变更处理方法,及操作系统 | |
US20110131512A1 (en) | Updateable running application | |
CN103827819A (zh) | 计算机系统中的虚拟化设备控制 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20131030 |
|
RJ01 | Rejection of invention patent application after publication |