注:本框架為多數(shù)項目開發(fā)基類通用框架結構,如有特殊需求可進行單獨定制
- 框架目錄結構如下:

406E5BD1-3677-4DB4-B7C4-2F3493E9ECDE.png
框架在使用的過程中還是發(fā)現(xiàn)了一些問題的,開始的時候是使用的MVC目錄結構,后續(xù)項目維護由于項目龐大的業(yè)務邏輯改為MVVM,下面說一下兩者的優(yōu)缺點吧
MVVM
優(yōu)點:業(yè)務邏輯清晰,可重復使用view,代碼高度解耦
缺點:過于分離的層次造成項目維護代碼較高,代碼量也相對增加,后期修復bug時成本也較高,不易維護
- MVC
優(yōu)點:代碼邏輯清晰,較為容易理解,層次較為分明
缺點:由于龐大的業(yè)務邏輯都會堆放在Controller造成控制器過于臃腫,view以及一些其他類也較為難
以實現(xiàn)循環(huán)利用,難以分離
基類框架的設計初衷
響應式編程和函數(shù)式編程思想
這里說明一下,如果有同學不理解什么是響應式編程和函數(shù)式編程的話,請點擊下面的鏈接http://www.itdecent.cn/p/7017a220f34c
提前看下接口吧
接口
//1.1.2 標題文本、顏色、字體
- (void)naviTitle:(NSString *)title color:(UIColor *)color font:(UIFont *)font;
- (HRBaseViewController *(^)(NSString *title))setupNaviTitle;
- (HRBaseViewController *(^)(UIColor *))setupTitleColor;
- (HRBaseViewController *(^)(UIFont *))setupTitleFont;
//1.2.1 左按鈕標題
- (void)leftItemTitle:(NSString *)title color:(UIColor *)color font:(UIFont *)font action:(void(^)())action;
- (HRBaseViewController *(^)(NSString *title, UIColor *color, UIFont *font, void(^action)()))setupLeftTitleItem;
//1.2.2 左按鈕圖片
- (void)leftImageItem:(NSString *)imageName action:(void(^)())action;
- (HRBaseViewController *(^)(NSString *imageName, void(^action)()))setupLeftImageItem;
//1.2.3 左按鈕通用
- (void)leftItems:(NSArray <HRBarItem *>*)items actions:(void(^)(NSInteger index))actions;
- (HRBaseViewController *(^)(NSArray <HRBarItem *>*items,void (^actions)(NSInteger index)))setupLeftItems;
//1.3.1 右按鈕標題
- (void)rightItemTitle:(NSString *)title color:(UIColor *)color font:(UIFont *)font action:(void(^)())action;
- (HRBaseViewController *(^)(NSString *title, UIColor *color, UIFont *font, void(^action)()))setupRightTitleItem;
//1.3.2 右按鈕圖片
- (void)rightImageItem:(NSString *)imageName action:(void(^)())action;
- (HRBaseViewController *(^)(NSString *imageName, void(^action)()))setupRightImageItem;
//1.3.3 右按鈕通用
- (void)rightItems:(NSArray <HRBarItem *>*)items actions:(void(^)(NSInteger index))actions;
- (HRBaseViewController *(^)(NSArray <HRBarItem *>*items,void (^actions)(NSInteger index)))setupRightItems;
//1.4.1 系統(tǒng)返回按鈕隱藏
@property (assign, nonatomic) BOOL hiddenBackItem;
//- (HRBaseViewController *(^)())setupHiddenBackItem;
具體使用以及設計思路會在下個章節(jié)進行說明,敬請期待...
有任何問題可以隨時進行咨詢,歡迎...
郵件:750460196@qq.com