1.在相同的模塊中,嚴禁在回調中使用該模塊除了get語意的接口,尤其是close,stop之類的action接口除非底層做了相應處理。不能使用該屬性通知而又通過get該屬性,原則上面,該接口可能是無效的。
2.要區(qū)分reset,flush和Finish的語意場景,原則上調用了reset之后,所有的接口get類的接口都不可以再調用,直到重新初始化或者set接口之后,往往用于實時環(huán)境,需要快速返回的情況。而flush的接口往往在使用在確保之前的接口都應該將數據或者狀態(tài)傳遞到最后一個知情者。Finish而使用者在確保所有的接口行為都已經執(zhí)行完成。因此熟悉這類的接口將有助于理解以及設計相應的接口。偏于溝通理解,防止誤用。
3.接口應該成雙成對出現,比如open與close,play和stop,一個完備的軟件體系必須從起點出發(fā),也有相應的途徑返回到相應的起點。
4.接口的設計語意功能應該適度,最好可以用一句言簡意賅的陳述該接口的意義,另外需要考慮上層該接口的使用場景。
5.接口設計應該可以多層次化。一個好的接口設計體系即可以非常方便實現通用的功能,也能滿足特定的場合使用。在這個情況下,接口多層次化也可以清晰展現給上層開發(fā)人員。
6.所有的接口都應該有返回值,除了對相應對象最后的銷毀方法可以用void類型,也應該提倡用void類型,另外,上層需要判斷每個接口是否操作正確。
7.所有的接口設計功能要保持單一明確,接口名要規(guī)范,接口直接需要保持適度的冗余與一致。
大概的經驗之談。