封装Dagger的方法、装置、Dagger、解耦方法、装置、设备及介质与流程

文档序号:17357086发布日期:2019-04-09 21:46阅读:188来源:国知局
本公开实施例涉及计算机技术,尤其涉及一种封装dagger的方法、装置、封装dagger、对mvp架构的解耦方法、装置、终端设备及存储介质。
背景技术
::针对项目变大后内部类太多,类与类之间出现多重依赖的问题,google推出编译时注解版本的dagger2方案,旨在以编译期生成代码替代原有的反射方案,不影响原有应用程序(application,app)性能的前提下,解决依赖性问题,同时由于android应用开发中大量采用mvp的架构,因此会频繁出现在mvp架构的基础上引入dagger2,项目中需单独维护dagger所需的component和module文件。由于dagger2要求我们为每个页面(或模块)配置component和module文件,随着业务的快速扩大,app内模块和页面也越来越多,手动维护这个配置列表将变得越发臃肿,难以维护,人为的管理同步也增加了疏漏的几率;dagger2由于设计上的考虑,添加4个内部类来达到间接注入的目的,使得研发的学习周期较长。技术实现要素:有鉴于此,本公开实施例提供一种封装dagger的方法、装置、封装dagger、对mvp架构的解耦方法、装置、终端设备及存储介质,以至少地解决上述问题。第一方面,本公开实施例提供了一种封装dagger的方法,所述方法包括:创建自定义注解autowire,所述autowire为编译时注解;创建autowire注解对应的注解处理器,所述注解处理器用于在编译时获取添加autowire注解的类信息;根据所述类信息,生成dagger所需的component文件和module文件。可选的,还包括:通过所述注解处理器将所述类信息作为element输出;通过所述注解处理器中的process方法将所述element输出的类信息进行封装,得到传入参数;解析所述传入参数,得到被注解的类信息。可选的,根据所述类信息,生成dagger所需的component文件和module文件,包括:根据所述类信息,利用javapoet库生成dagger所需的component文件;根据所述类信息,利用javapoet库生成dagger所需的module文件。第二方面,本公开实施例还提供了一种封装的dagger,所述封装的dagger由本公开任一实施例所述的封装dagger的方法封装而成。第三方面,本公开实施例还提供了一种封装的dagger对mvp架构的解耦方法,包括:针对mvp架构,将activity的基类对应的activity实例注入所述dagger中;在编译时,通过所述dagger中的注解处理器获取添加autowire注解的activity的类信息,所述autowire注解为编译时注解,包括activity对应的presenter参数和contract参数;根据所述类信息,通过所述dagger中的module文件连接所述autowire注解的activity的presenter参数和contract参数,并生成对应的连接类,通过所述dagger中的component文件对activity进行注入操作。可选的,在针对mvp架构,将activity的基类对应的activity实例注入所述dagger中之前,还包括:在所述activity不存在基类时,创建所述activity的基类。可选的,通过所述dagger中的component文件对activity进行注入操作,包括:在所述基类中对添加autowire注解的activity进行类型判断,并通过dagger中的component文件中的方法对判断为预设类型的activity进行注入操作。第四方面,本公开实施例还提供了一种封装dagger的装置,所述装置包括:注解创建模块,用于创建自定义注解autowire,所述autowire为编译时注解;注解处理器创建模块,用于创建autowire注解对应的注解处理器,所述注解处理器用于在编译时获取添加autowire注解的类信息;配置文件生成模块,用于根据所述类信息,生成dagger所需的component文件和module文件。可选的,还包括:element输出模块,用于通过所述注解处理器将所述类信息作为element输出;封装模块,用于通过所述注解处理器中的process方法将所述element输出的类信息进行封装,得到传入参数;解析模块,用于解析所述传入参数,得到被注解的类信息。可选的,所述配置文件生成模块包括:component文件生成单元,用于根据所述类信息,利用javapoet库生成dagger所需的component文件;module文件生成单元,用于根据所述类信息,利用javapoet库生成dagger所需的module文件。第五方面,本公开实施例还提供了一种封装的dagger对mvp架构的解耦装置,所述装置包括:实例注入模块,用于针对mvp架构,将activity的基类对应的activity实例注入所述dagger中;类信息获取模块,用于在编译时,通过所述dagger中的注解处理器获取添加autowire注解的activity的类信息,所述autowire注解为编译时注解,包括activity对应的presenter参数和contract参数;解耦模块,用于根据所述类信息,通过所述dagger中的module文件连接所述autowire注解的activity的presenter参数和contract参数,并生成对应的连接类,通过所述dagger中的component文件对activity进行注入操作。可选的,还包括:基类创建模块,用于在所述activity不存在基类时,创建所述activity的基类。可选的,所述解耦模块包括:类型判断单元,用于在所述基类中对添加autowire注解的activity进行类型判断,并通过dagger中的component文件中的方法对判断为预设类型的activity进行注入操作。第六方面,本公开实施例还提供了一种终端设备,包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本公开任一实施例所述的封装dagger的方法或本公开任一实施例所述的dagger对mvp架构的解耦方法。第七方面,本公开实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现本公开任一实施例所述的封装dagger的方法或本公开任一实施例所述的dagger对mvp架构的解耦方法。本公开实施例的技术方案,通过创建自定义注解autowire,所述autowire注解为编译时注解,创建autowire注解对应的注解处理器,所述注解处理器用于在编译时获取添加autowire注解的类信息,根据所述类信息,生成dagger所需的component文件和module文件,实现了对dagger的封装,而且可以自动生成component文件和module文件,解决了配置文件难以维护及人为管理易疏漏的问题,并减少研发人员的学习周期。附图说明图1是本公开实施例提供的一种封装dagger的方法的流程图;图2是本公开实施例提供的一种封装的dagger的结构示意图;图3是本公开实施例提供的一种封装dagger对mvp架构的解耦方法的流程图;图4是本公开实施例提供的一种封装dagger的装置的结构示意图;图5是本公开实施例提供的一种封装dagger对mvp架构的解耦装置的结构示意图;图6是本公开实施例提供的一种终端设备的硬件结构示意图。具体实施方式下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分而非全部内容。图1是本公开实施例提供的一种封装dagger的方法的流程图,该方法可以由封装dagger的装置来执行,该装置可以由软件和/或硬件来实现,一般可集成在手机或平板电脑等终端设备中。该方法具体包括如下步骤:步骤110,创建自定义注解autowire,所述autowire为编译时注解。其中,annotation(注解)就是java提供了一种元程序中的元素关联任何信息和任何元数据(metadata)的途径和方法。annotation(注解)是一个接口,程序可以通过反射来获取指定程序元素的annotation对象,然后通过annotation对象来获取注解里面的元数据。注解(annotation)是jdk5之后引进的,可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查,并应用于包、类型、构造方法、方法、成员变量、参数、本地变量的声明中。自定义注解包括编译时注解和运行时注解,编译时注解一般应用于编译器中。创建自定义注解autowire,并且确保创建的autowire注解为编译时注解。autowire是计算机术语,autowire注解可以实现在依赖注入中自动装配依赖对象。步骤120,创建autowire注解对应的注解处理器,所述注解处理器用于在编译时获取添加autowire注解的类信息。其中,注解处理器是javac的一个工具,它用来在编译时扫描和处理注解。一个注解的注解处理器,以java代码(或者编译过的字节码)作为输入,生成文件(通常是.java文件)作为输出。这些生成的java代码是在生成的.java文件中,这些生成的java文件,会同其他普通的手动编写的java源代码一样被javac编译。在创建autowire注解后,创建对应的注解处理器abstractprocessor,注解处理器用于在编译时扫描和处理autowire注解,以编译过的字节码作为注解处理器的输入,生成文件作为输出,生成的文件为java文件,生成的java文件可以被javac编译。注解处理器在编译时扫描类包找到autowire注解的类并获取对应的类信息。其中,类信息包括类的名称、方法和属性。步骤130,根据所述类信息,生成dagger所需的component文件和module文件。其中,dagger是一个完全静态的,在编译时进行依赖注入的框架,原来由square公司维护,为dagger1版本,现在由google维护,为dagger2版本。dagger2是一个依赖注入框架,在编译期间自动生成代码,负责依赖对象的创建。用dagger2提供依赖,可以进一步解耦和方便测试,可以使用依赖注入的方式构建对象,而不使用new来创建依赖对象。在mvp架构中,presenter层会持有view层和model层的依赖,依赖注入主要用于解耦,通过依赖注入创建对象,不再使用new来创建对象。根据类信息,自动生成dagger所需的component文件和module文件。其中,component文件和module文件均为计算机术语,module文件用于存储提供依赖的方法,component文件是component接口,提供activity的注入方法。其中,根据所述类信息,生成dagger所需的component文件和module文件,可选包括:根据所述类信息,利用javapoet库生成dagger所需的component文件;根据所述类信息,利用javapoet库生成dagger所需的module文件。其中,javapoet是一个用来生成java源文件的javaapi(applicationprogramminginterface,应用程序编程接口)。javapoet需要借助常用类来生成代码,4个常用类包括:methodspec、typespec、fieldspec和javafile,其中,methodspec代表一个构造函数或方法声明,typespec代表一个类、接口或者枚举声明,fieldspec代表一个成员变量,一个字段声明,javafile包含一个顶级类的java文件。根据添加autowire注解的类信息,利用javapoet库生成dagger所需的component文件,之后,再次根据添加autowire注解的类信息,利用javapoet库生成dagger所需的module文件,利用javapoet库可以方便的生成dagger所需的component文件和module文件。本实施例的技术方案,通过创建自定义注解autowire,所述autowire注解为编译时注解,创建autowire注解对应的注解处理器,所述注解处理器用于在编译时获取添加autowire注解的类信息,根据所述类信息,生成dagger所需的component文件和module文件,实现了对dagger的封装,而且可以自动生成component文件和module文件,解决了配置文件难以维护及人为管理易疏漏的问题,并减少研发的学习周期。在上述技术方案的基础上,还可选包括:通过所述注解处理器将所述类信息作为element输出;通过所述注解处理器中的process方法将所述element输出的类信息进行封装,得到传入参数;解析所述传入参数,得到被注解的类信息。其中,element为计算机术语,element代表程序的元素,在注解处理过程中,编译器会扫描所有的java源文件,并将源码中的每一个部分都看作特定类型的element,它可以代表包、类、接口、方法、字段等多种元素种类,具体看getkind()方法中所指代的种类,每个element代表一个静态的、语言级别的构件。process方法是注解处理器中扫描、解析及处理注解的核心方法。所述注解处理器还用于将添加autowire注解的类信息作为element输出,注解处理器中的process方法返回注解处理器扫描项目代码后,将element输出的所有的类信息封装后得到传入参数(roundenvironment),对传入参数进行进一步解析,获取被注解的类信息,便于后续根据被注解的类信息生成dagger所需的component文件和module文件。图2是本公开实施例提供的一种封装的dagger的结构示意图,本实施例所述的封装的dagger由本公开实施例提供的封装dagger的方法封装而成,如图2所示,本公开实施例提供的封装的dagger包括自定义注解autowire210、注解处理器220和文件生成模块230。其中,自定义注解autowire210为编译时注解。注解处理器220用于在编译时扫描类包找到autowire注解的类并获取对应的类信息,将类信息作为element输出,通过process方法将element输出的所有添加autowire注解的类信息进行封装得到传入参数,并对传入参数进行进一步解析,获取被注解的类信息。文件生成模块230用于根据添加autowire注解的类信息,利用javapoet库生成dagger所需的component文件,再次根据添加autowire注解的类信息,利用javapoet库生成dagger所需的module文件。本实施例的技术方案,封装的dagger定义了自定义注解autowire,在使用封装的dagger时只需要在需要的位置添加autowire注解,便可以自动生成dagger所需的component文件和module文件,研发人员不必再刻意学习dagger,减少了研发人员的学习周期,而且封装的dagger可以根据添加autowire注解的类信息自动生成对应的component文件和module文件,解决了配置文件难以维护及人为管理易疏漏的问题。图3是本公开实施例提供的一种封装dagger对mvp架构的解耦方法的流程图,所述封装dagger为本公开实施例提供的封装的dagger,本实施例适用于利用dagger对mvp架构解耦的情况,该方法可以由封装dagger对mvp架构的解耦装置来执行,该装置可以由软件和/或硬件来实现,一般可集成在手机或平板电脑等终端设备中。该方法具体包括如下步骤:步骤310,针对mvp架构,将activity的基类对应的activity实例注入所述dagger中。其中,mvp(modelviewpresenter)架构包括view层(也称为视图层)、model层(也称为数据层)和presenter层,其中,view层主要负责界面的显示及跟数据无关的逻辑,比如设置控件的点击事件等;presenter层主要负责view层与model层的交互,如从model层获得所需要的数据,进行一些适当的处理后交由view层进行显示;model层为数据部分,负责对数据的存取操作,例如对数据库的读写等。mvp架构的核心是:view层不持有model层对象任何引用,参数里面和临时变量里可以有model层对象,只持有presenter层对象引用,任何需要更新或者操作数据的,都间接通过presenter对象去操作数据;presenter层持有view层对象的引用,model层会把想要更新view的操作委托presenter去操作,而presenter层会把更新view操作交给view层对象去操作。activity是android组件中最基本也是最为常见的四大组件之一。android四大组件有activity、service服务、contentprovider内容提供及broadcastreceiver广播接收器。activity是一个应用程序组件,提供一个屏幕,activity中所有操作都与用户密切相关,是一个负责与用户交互的组件,在一个android应用中,一个activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。相关技术中,在对activity进行注入时,需要对每个activity进行注入,导致dagger代码侵入性较强。本公开实施例中,针对mvp架构,将activity的基类即baseactivity对应的activity实例注入封装后的dagger中,baseactivity的子类即activity继承于基类的注入,从而不需要对每个activity进行单独注入,解决了dagger代码侵入性的问题。步骤320,在编译时,通过所述dagger中的注解处理器获取添加autowire注解的activity的类信息,所述autowire注解为编译时注解,包括activity对应的presenter参数和contract参数。其中,类信息包括名称、方法和属性。presenter和contract为mvp架构中的术语,contract描述了view层和presenter层之间的交互,presenter参数用于实现presenter层的实例化。在需要解耦的activity上添加autowire注解,并在autowire注解中填写对应的presenter参数和contract参数,在编译时,通过封装的dagger中的注解处理器扫描项目代码,获取添加autowire注解的activity及对应的类信息。步骤330,根据所述类信息,通过所述dagger中的module文件连接所述autowire注解的activity的presenter参数和contract参数,并生成对应的连接类,通过所述dagger中的component文件对activity进行注入操作。其中,module文件用于存储提供依赖的方法,component文件是component接口,提供activity的注入方法。根据扫描到的添加autowire注解的类信息,通过dagger中的module文件中的方法连接添加autowire注解的activity的presenter参数和contract参数,连接model层、view层和presenter层,从而在生成的module文件中提供对应的presenter实例和contract实例,再在自动生成的component文件中针对autowire注解的activity进行类型判断后对activity进行注入操作,从而完成mvp架构的所有自动实例注入。本实施例的技术方案,通过针对mvp架构,将activity的基类对应的activity实例注入dagger中,在编译时通过dagger中的注解处理器获取添加autowire注解的activity的类信息,根据所述类信息,通过dagger中的module文件链接autowire注解的activity的presenter参数和contract参数,生成对应的连接类,实现了对mvp架构的自动实例的注入,实现了通过dagger解耦mvp架构中view层、presenter层和model层的相互依赖,解决了dagger代码侵入性的问题,而且研发过程中无需再面对复杂的dagger2,当项目中的presenter类和model类的数量足够多时将带来可观的优势。在上述技术方案的基础上,在针对mvp架构,将activity的基类对应的activity实例注入所述dagger中之前,还可选包括:在所述activity不存在基类时,创建所述activity的基类。在activity存在基类baseactivity时,可以直接将基类对应的activity实例注入dagger中,在activity不存在基类时,首先创建activity的基类baseactivity,并将基类对应的activity实例注入dagger中,解决了dagger代码侵入性的问题。在上述技术方案的基础上,通过所述dagger中的component文件对activity进行注入操作,可选包括:在所述基类中对添加autowire注解的activity进行类型判断,并通过dagger中的component文件中的方法对判断为预设类型的activity进行注入操作。其中,类型判断即instanceof判断,ainstanceofb中,a是一个对象,b是一个类,ainstanceofb表示判断a这个对象是否是b这个类的实例。component文件中的方法可以为inject方法,所述inject方法给出了具体的注入方式。在基类中对添加autowire注解的activity进行类型判断,判断得到为预设类型的activity,通过dagger中的component文件中的inject方法对此具体的activity进行注入操作。示例性的,假设基类为动物,而对应的子类包括狗、猫、猪等,而需要对狗进行注入,这时就需要进行类型判断,对判断为预设类型即为狗的子类进行注入,而不是对所有子类进行注入。通过dagger中的自定义注解生成一个类来进行自动instanceof判断,这个类可以命名为baseautoactivity,通过自定义注解首先搜集所有添加autowire注解的activity,然后在baseautoactivity中对搜集到的每个activity进行instanceof判断,根据判断后得知的具体子类进行注入操作,从而完成对所有activity的自动注入,解决了dagger中不能注入抽象的基类的问题。图4是本公开实施例提供的一种封装dagger的装置的结构示意图,该装置可以执行封装dagger的方法,该装置可以由软件和/或硬件来实现,一般可集成在手机或平板电脑等终端设备中。如图4所示,本实施例所述的封装dagger的装置包括:注解创建模块410、注解处理器创建模块420和配置文件生成模块430。其中,注解创建模块410,用于创建自定义注解autowire,所述autowire为编译时注解;注解处理器创建模块420,用于创建autowire注解对应的注解处理器,所述注解处理器用于在编译时获取添加autowire注解的类信息;配置文件生成模块430,用于根据所述类信息,生成dagger所需的component文件和module文件。可选的,还包括:element输出模块,用于通过所述注解处理器将所述类信息作为element输出;封装模块,用于通过所述注解处理器中的process方法将所述element输出的类信息进行封装,得到传入参数;解析模块,用于解析所述传入参数,得到被注解的类信息。可选的,所述配置文件生成模块包括:component文件生成单元,用于根据所述类信息,利用javapoet库生成dagger所需的component文件;module文件生成单元,用于根据所述类信息,利用javapoet库生成dagger所需的module文件。上述封装dagger的装置可执行本公开任意实施例所提供的封装dagger的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本公开任意实施例提供的封装dagger的方法。图5是本公开实施例提供的一种封装dagger对mvp架构的解耦装置的结构示意图,所述封装dagger为本公开实施例提供的封装的dagger,本实施例适用于利用dagger对mvp架构解耦的情况,该装置可以执行封装dagger对mvp架构的解耦方法,该装置可以由软件和/或硬件来实现,一般可集成在手机或平板电脑等终端设备中。如图5所示,本实施例所述的封装dagger对mvp架构的解耦装置包括:实例注入模块510、类信息获取模块520和解耦模块530。其中,实例注入模块510,用于针对mvp架构,将activity的基类对应的activity实例注入所述dagger中;类信息获取模块520,用于在编译时,通过所述dagger中的注解处理器获取添加autowire注解的activity的类信息,所述autowire注解为编译时注解,包括activity对应的presenter参数和contract参数;解耦模块530,用于根据所述类信息,通过所述dagger中的module文件连接所述autowire注解的activity的presenter参数和contract参数,并生成对应的连接类,通过所述dagger中的component文件对activity进行注入操作。可选的,还包括:基类创建模块,用于在所述activity不存在基类时,创建所述activity的基类。可选的,所述解耦模块包括:类型判断单元,用于在所述基类中对添加autowire注解的activity进行类型判断,并通过dagger中的component文件中的方法对判断为预设类型的activity进行注入操作。上述封装dagger对mvp架构的解耦装置可执行本公开任意实施例所提供的封装dagger对mvp架构的解耦方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本公开任意实施例提供的封装dagger对mvp架构的解耦方法。图6是本公开实施例提供的一种终端设备的硬件结构示意图。终端设备可以以各种形式来实施,本公开中的终端设备可以包括但不限于诸如移动电话、智能电话、笔记本电脑、数字广播接收器、pda(personaldigitalassistant,个人数字助理)、pad(平板电脑)、pmp(portablemultimediaplayer,便携式多媒体播放器)、导航装置、车载终端设备、车载显示终端、车载电子后视镜等等的移动终端设备以及诸如数字tv、台式计算机等等的固定终端设备。如图6所示,终端设备600可以包括无线通信单元610、a/v(音频/视频)输入单元620、用户输入单元630、感测单元640、输出单元650、存储器660、接口单元670、处理器680和电源单元690等等。图6示出了具有各种组件的终端设备,但是应理解的是,并不要求实施所有示出的组件,可以替代地实施更多或更少的组件。其中,无线通信单元610允许终端设备600与无线通信系统或网络之间的无线电通信。a/v输入单元620用于接收音频或视频信号。用户输入单元630可以根据用户输入的命令生成键输入数据以控制终端设备的各种操作。感测单元640检测终端设备600的当前状态、终端设备600的位置、用户对于终端设备600的触摸输入的有无、终端设备600的取向、终端设备600的加速或减速移动和方向等等,并且生成用于控制终端设备600的操作的命令或信号。接口单元670用作至少一个外部装置与终端设备600连接可以通信的接口。输出单元650被构造为以视觉、音频和/或触觉方式提供输出信号。存储器660可以存储由处理器680执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据。存储器660可以包括至少一种类型的存储介质。而且,终端设备600可以与通过网络连接执行存储器660的存储功能的网络存储装置协作。处理器680通常控制终端设备的总体操作。另外,处理器680可以包括用于再现或回放多媒体数据的多媒体模块。处理器680可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。电源单元690在处理器680的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。处理器680通过运行存储在存储器660中的程序,从而执行终端设备600的各种功能应用以及数据处理,例如实现本公开实施例所提供的一种封装dagger的方法或者一种dagger对mvp架构的解耦方法。其中,一种封装dagger的方法,包括:创建自定义注解autowire,所述autowire为编译时注解;创建autowire注解对应的注解处理器,所述注解处理器用于在编译时获取添加autowire注解的类信息;根据所述类信息,生成dagger所需的component文件和module文件。一种dagger对mvp架构的解耦方法,包括:针对mvp架构,将activity的基类对应的activity实例注入所述dagger中;在编译时,通过所述dagger中的注解处理器获取添加autowire注解的activity的类信息,所述autowire注解为编译时注解,包括activity对应的presenter参数和contract参数;根据所述类信息,通过所述dagger中的module文件连接所述autowire注解的activity的presenter参数和contract参数,并生成对应的连接类,通过所述dagger中的component文件对activity进行注入操作。本公开实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种封装dagger的方法或者一种dagger对mvp架构的解耦方法。其中,一种封装dagger的方法,包括:创建自定义注解autowire,所述autowire为编译时注解;创建autowire注解对应的注解处理器,所述注解处理器用于在编译时获取添加autowire注解的类信息;根据所述类信息,生成dagger所需的component文件和module文件。一种dagger对mvp架构的解耦方法,包括:针对mvp架构,将activity的基类对应的activity实例注入所述dagger中;在编译时,通过所述dagger中的注解处理器获取添加autowire注解的activity的类信息,所述autowire注解为编译时注解,包括activity对应的presenter参数和contract参数;根据所述类信息,通过所述dagger中的module文件连接所述autowire注解的activity的presenter参数和contract参数,并生成对应的连接类,通过所述dagger中的component文件对activity进行注入操作。当然,本公开实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本公开任意实施例所提供的封装dagger的方法或者dagger对mvp架构的解耦方法中的相关操作。通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本公开可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、闪存(flash)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述的方法。值得注意的是,上述封装dagger的装置或者dagger对mvp架构的解耦装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本公开的保护范围。注意,上述仅为本公开的较佳实施例及所运用技术原理。本领域技术人员会理解,本公开不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本公开的保护范围。因此,虽然通过以上实施例对本公开进行了较为详细的说明,但是本公开不仅仅限于以上实施例,在不脱离本公开构思的情况下,还可以包括更多其他等效实施例,而本公开的范围由所附的权利要求范围决定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1