框架:模組化
實現原理:先定義乙個協議(protocol),然後通過objection來註冊這個協議對應的class,需要的時候,可以獲取該協議對應的object。對於使用方無需關心到底使用的是哪個class,反正該有的方法、屬性都有了(在協議中指定)。這樣就去除了對某個特定class的依賴。也就是通常所說的「面向介面程式設計」,因為我們無法直接獲得對應的class,所以必須要在協議裡定義好對外暴露的方法和屬性,然後該class也要實現該協議。
註冊模組、繫結介面對應的class
jsobjectionmodule 1. 新建乙個繼承於jsobjectionmodule的類,這個類像模組容器註冊此模組提供的物件。 2. 註冊需要過載兩個方法,+load和-configure,load是向模組容器註冊這個module類,configure是向容器註冊這個module提供的功能。
//
// protocols.h
// objectiontest
//#ifndef protocols_h
#define protocols_h
#import @protocol secondviewprotocol - (void)configurewithtag:(nsstring *)tag;
@end
#endif /* protocols_h */
//
// secondmodule.h
// objectiontest
//#import "jsobjectionmodule.h"
ns_assume_nonnull_begin
@inte***ce secondmodule : jsobjectionmodule
@end
ns_assume_nonnull_end
//// secondmodule.m
// objectiontest
////
#import "secondmodule.h"
#import "secondviewcontroller.h"
#import "protocols.h"
#import @implementation secondmodule
+ (void)load
- (void)configure
@end
//
// viewcontroller.h
// objectiontest
//#import @inte***ce viewcontroller : uiviewcontroller
@end
//// viewcontroller.m
// objectiontest
//#import "viewcontroller.h"
#import "protocols.h"
#import @inte***ce viewcontroller ()
@end
@implementation viewcontroller
- (void)viewdidload
- (void)buttonclickeddd
@end
//
// secondviewcontroller.h
// objectiontest
//#import ns_assume_nonnull_begin
@inte***ce secondviewcontroller : uiviewcontroller
@end
ns_assume_nonnull_end
//// secondviewcontroller.m
// objectiontest
//#import "secondviewcontroller.h"
#import "thirdvcviewcontroller.h"
#import "protocols.h"
@inte***ce secondviewcontroller ()@property (nonatomic,strong) uilabel * labell;
@property (nonatomic,copy) nsstring * labellstring;
@end
@implementation secondviewcontroller
- (void)configurewithtag:(nsstring *)tag
- (void)viewdidload
- (void)buttonclickeddd
@end
EasyModular 簡易模組化框架
easymodular是基於necore3.1的簡易模組化框架,開箱即用,1分鐘即可以搭建乙個簡單可用的模組化框架。元件nuget 是否必須 模組化核心庫 install package easymodular 介面文件 install package easymodular.swagger orm...
YII框架的模組化技術
一 模組的建立 利用yii的自動生成工具gii生成模組。1 訪問 lcoalhost web index.php?r gii 2 點選 module generator 下面的 start 4 填寫 module id 例如 article 解釋 模組唯一id,一般與模組入口名稱相同。5 點選 pr...
什麼是模組化?模組化的好處
1.高內聚低耦合,有利於團隊作戰,當專案很複雜的時候,將專案劃分為子模組分給不同的人開發,最後再組合在一起,這樣可以降低模組與模組之間的依賴關係體現低耦合,模組又有特定功能體現高內聚。2.可重用,方便維護,模組的特點就是有特定功能,當兩個專案都需要某種功能的時候,我們定義乙個特定的模組來實現該功能,...