每天感覺有好多想和各位分享的峰伙,可是每天回家都這個(gè)時(shí)間,想寫一些準(zhǔn)備比較充分的文章分享給大家,總是心有余而力不足,最近一直在收集iOS開發(fā)中經(jīng)常遇到的問題,過斷時(shí)間總結(jié)出來與大家分享席里!
一直用了很多優(yōu)秀的三方框架,用的過程既幫我節(jié)省了很多的時(shí)間拢驾,又學(xué)到了很多自己不會的技術(shù)奖磁,在此我向這些喜歡分享的開發(fā)者真誠的說一聲謝謝
今天來談?wù)勎覀€(gè)人對設(shè)計(jì)一個(gè)的三方庫的一些看法,我也算個(gè)小白吧繁疤,希望哪里我有說錯(cuò)的地方忘朋友海涵與糾正
- 首先是接口的設(shè)計(jì)我覺得是框架中很重要的環(huán)節(jié)之一
- 接口需要提供給外界夠用的方法署穗,并且接口的命名與參數(shù)名一定要規(guī)范,因?yàn)榻涌谑峭饨缬诳蚣軠贤ǖ耐ǖ狼锻荩玫慕涌谧屓艘荒苛巳话钙#吹浇涌诿椭婪椒ǖ墓δ埽⑶彝饨缣峁蛴玫慕涌诼檠且肭宄男┬枰男┎恍枰址龋⑶医涌诘拿Q如果已經(jīng)發(fā)布了,就不要輕易改動鳖昌,改動會照成使用原來版本的開發(fā)者在更新框架的時(shí)候舊項(xiàng)目會各種報(bào)錯(cuò)备畦,相信朋友們也能理解這種糾結(jié)的心情,如果實(shí)在需要改動许昨,建議使用蘋果的做法懂盐,將以前的方法標(biāo)記為過期,提示用戶更換接口糕档,具體代碼如下
- (void)oldMethod NS_DEPRECATED_IOS(2_0, 3_0, "此方法已經(jīng)被棄用莉恼,請用newMethod方法")
- 第二點(diǎn)是要想清楚參數(shù)被多次賦值多次調(diào)用setter方法會有哪些影響,如果參數(shù)傳入不正確或者nil的時(shí)候做好相應(yīng)的處理速那,如在setter方法中有控件去添加子控件俐银,再次調(diào)用setter方法是否應(yīng)該清除之前的子控件,這里有一個(gè)數(shù)組的方法我個(gè)人一直覺得很好用端仰,數(shù)組中的每一個(gè)對象調(diào)用某個(gè)方法
[array makeObjectsPerformSelector:@selector
(removeFromSuperview)];
第三點(diǎn)是要考慮到哪些屬性可以對外暴露捶惜,哪些屬性不應(yīng)該對外暴露,要想清楚提供的屬性是否夠用
第四點(diǎn)盡可能提供足夠多的注釋荔烧,很多時(shí)候框架也許會無法滿足開發(fā)者吱七,此時(shí)足夠的注釋會使開發(fā)者快速的了解框架的code,以便修改code達(dá)到開發(fā)者的需求
第五應(yīng)該合理的利用設(shè)計(jì)模式鹤竭,該用代理的時(shí)候就代理踊餐,該通知時(shí)候就用通知,合理的設(shè)計(jì)模式會使code的可讀性以及框架的穩(wěn)定性大大提升诺擅,降低耦合性這里建議朋友可以看看這幾年很火的MVVM
第六就是細(xì)心市袖,要考慮的非常周到目前就想到這么多了。再次謝謝那些喜歡分享的同行們
暫時(shí)就想到了這些,不知不覺又快倆點(diǎn)了苍碟,下午寫了一個(gè)小的框架酒觅,比較簡單希望可以幫組朋友節(jié)省一些開發(fā)時(shí)間,如果我寫的有什么不足之處希望大家可以指出
項(xiàng)目鏈接:https://github.com/ZhongTaoTian/WNXPageView
希望大家給個(gè)star哈哈-微峰;