注册树模式与appdelegate的应用

使用注册树设计模式,拓展了didFinishLaunchingWithOptions方法,具体实现如下:

1)生成一份接口协议(ONEAppDelegateStoreDelegate),用于和原生协议对接

2)遵守接口协议的对象通过bind方法,向ONEAppDelegateStore注册

使用时,当appdelegate协议方法触发,回调对应ONEAppDelegateStore的方法,ONEAppDelegateStore对应方法则遍历注册对象,询问是否实现该方法,如果实现,则调用注册对象中的方法。

一些缺陷: ONEAppDelegateStoreDelegate的方法和ONEAppDelegateStore方法相同,重复。
整个调用过程,需要在触发了appdelegate的方法后,再调用ONEAppDelegateStore的方 法,显得比较冗余。

不过ONEAppDelegateStoreDelegate是可扩展的接口,他包含了appdelegate中需要使用的方法

优点&缺点:下发了事件处理的时机,允许组件,在自己内部处理系统时机(前后台等),好的方面看,解放了appdelegate事件处理方法,不需要所有组件通过通知的方法或在appdelegate内部添加代码的方法处理事件;不好的地方,代码散落,不易维护,同时每当接收到appdelegate方法后,都需要遍历全部注册对象,查看是否实现该方法;本质上和通知方法没有区别,一个是在系统提供的组件进行注册,一个是自己提供的组件进行注册。

你可能感兴趣的:(注册树模式与appdelegate的应用)