2016技术笔记

2016笔记——组件化学习(二)

2018-07-27  本文已影响16人  满庭花醉三千客

上一篇说了Protocol方案:

项目外壳+组件A 的实现。

ViewController-FirstVC-SecondVC-ThirdVC

这一篇拓展一下Protocol方案:

项目外壳+组件A+组件B的实现。

ViewController-FirstVC-SecondVC-ThirdVC-MondayVC

具体实现:

第一步,写一个简单的项目,项目内容是

FirstVC ->SecondVC->ThirdVC跳转。

第二步,写一个简单的项目,项目内容是MondayVC。

第三步,新建一个项目,将FirstVC、SecondVC、ThirdVC、MondayVC导入到新的项目中来。

第四步,新建一个继承于NSObject的ModuleManager,也就是组件管理中心。

第五步,新建一个继承于NSObject的CompontProtocol,也就是协议中心。

第六步,在CompontProtocol中添加ProjectAProctol以及ProjectBProtocol

屏幕快照 2016-10-12 上午9.53.31.png

第七步,在ModuleManager.h中添加三个方法:

屏幕快照 2016-10-12 上午9.55.12.png

第八步,在ModuleManager.m中实现这三个方法:

屏幕快照 2016-10-12 上午9.55.41.png 屏幕快照 2016-10-12 上午9.56.00.png

第九步,前往第一个节点(FirstViewController)中导入ModuleManager、CompontProtocol头文件,添加注册

FirstViewController.h

屏幕快照 2016-10-12 上午9.57.48.png

FirstViewController.m

屏幕快照 2016-10-12 上午9.58.14.png 屏幕快照 2016-10-12 上午9.58.28.png 屏幕快照 2016-10-12 上午9.58.40.png 屏幕快照 2016-10-12 上午9.58.52.png

第十步,前往第二个节点(MondayViewController)中导入ModuleManager、CompontProtocol的头文件,然后注册。

MondayViewController.m

屏幕快照 2016-10-12 上午10.02.41.png 屏幕快照 2016-10-12 上午10.02.50.png

第十一步,前往ViewController中调用第一个组件。

ViewController中导入ModuleManager、CompontProtocol的头文件,然后添加按钮,按钮的点击事件中这样写:

屏幕快照 2016-10-12 上午10.05.16.png

第十二步,前往第一个组件的ThirdViewController中,调用第二个组件:

ThirdViewController.m:

屏幕快照 2016-10-12 上午10.09.19.png 屏幕快照 2016-10-12 上午10.09.44.png 屏幕快照 2016-10-12 上午10.09.54.png

ViewController-FirstVC-SecondVC-ThirdVC

ViewController-FirstVC-SecondVC-ThirdVC-MondayVC

其实二者相比,就只是多了这么几步:

1 导入项目B的文件

2 在协议中心添加新的协议B和方法

3 将项目B的接口文件(MondayVC)注册到组件管理中心

4 在项目B的接口文件(MondayVC)中实现协议B的方法

5 在调用项目B的地方(ThirdVC)通过组建管理中心获得到项目B的接口文件(MondayVC),调用B协议方法实现服务。

最后就是运行了:

useDouble.gif

看看打印台的信息:

屏幕快照 2016-10-12 上午10.39.19.png

完全无压力~嘿嘿。

最后上一个流程梳理图:

梳理.png

然后我用语言表述一下:

1 新建继承于NSObject的ModuleManager,然后添加两个方法:注册方法和获取方法。

注册方法:传入protocol和class,然后生成protocol-class的注册表。

获取方法:传入protocol,返回class。

2 新建继承于NSObject的CompontProtocol,添加协议A,定义协议的方法。

3 在组件A中的接口VC也就是FirstVC中,导入CompontProtocol,实现协议A的方法。接着调用ModuleManager的注册方法。

4 调用时,在ViewController中,导入ModuleManager和CompontProtocol的头文件,然后调用ModuleManager的获取方法,传入协议A即可获得到FirstVC,然后执行协议A的方法即可调用组件A的服务。

5 多个组件时,定义多个协议,并在组件中提供服务的VC中导入CompontProtocol和ModuleManager头文件,实现协议,然后调用ModuleManager的注册方法。使用时,导入ModuleManager和CompontProtocol的头文件,传协议名获取class即可。

加油~~

上一篇下一篇

猜你喜欢

热点阅读