抽象方法怎么选?3年维护成本降50%的实战方案
馃殌鎶借薄鏂规硶鍒板簳鏈夊暐鐢紵
鍝庯紝浣犲垰寮€濮嬪Java鏄笉鏄篃琚玜bstract鎼炲緱澶村ぇ锛熶笂涓湀鏈変釜瀹炰範鐢熼棶鎴戯細"涓哄暐闈炶鎼炰釜涓嶈兘鐩存帴鐢ㄧ殑鏂规硶锛?涓句釜鏍楀瓙馃尠锛屽氨濂芥瘮閫犺溅鈥斺€旀病浜轰細鍏堥€犱釜鍏蜂綋杞﹀瀷锛岃€屾槸瀹氬ソ鏂瑰悜鐩樸€佹补闂ㄨ繖浜涒€?strong>鈥嬫爣鍑嗘帴鍙b€?/strong>鈥嬨€傛娊璞℃柟娉曞氨鏄粰鎵€鏈夊瓙绫荤珛瑙勭煩锛氣€?strong>鈥嬪繀椤诲疄鐜颁絾鍚勮嚜鍙戞尌鈥?/strong>鈥嬨€傚幓骞存煇鐢靛晢绯荤粺鐢ㄨ繖鎷涳紝璁╂敮浠樻ā鍧楃淮鎶ゆ垚鏈洿闄?7%銆?/p>
馃攳涓轰粈涔堝ぇ鍘傞兘鐖辩敤abstract锛?/h3>
鐪嬩釜鐪熷疄妗堜緥锛氭姈闊崇殑婊ら暅绯荤粺銆傗€?strong>鈥婤aseFilter绫烩€?/strong>鈥嬮噷瀹氫箟鎶借薄鏂规硶applyEffect()锛屽叿浣撴护闀滆嚜宸卞疄鐜般€傝繖涔堝仛鐨勫ソ澶勬槑鏄庣櫧鐧斤細
- 鈥?strong>鈥嬪己鍒惰鑼冣€?/strong>鈥嬶細鏂版护闀滃繀椤荤鍚堝鐞嗘祦绋?/li>
- 鈥?strong>鈥嬮殧绂婚闄┾€?/strong>鈥嬶細鏌愪釜婊ら暅宕╀簡涓嶄細鐗佃繛鏁翠釜绯荤粺
- 鈥?strong>鈥嬪姩鎬佹墿灞曗€?/strong>鈥嬶細涓婄嚎鏂扮壒鏁堥€熷害鎻愬崌3鍊?br/>
瀵规瘮琛ㄦ牸鏇寸洿瑙傦細
| 浼犵粺鍐欐硶 | 鎶借薄鍐欐硶 |
|----------|----------|
| 20涓护闀?0濂椾唬鐮?| 1濂楀熀绫?20涓疄鐜?|
| 鏀归渶姹傝鏀?0澶?| 鍙渶鏀瑰熀绫?|
| 鏂颁汉涓婃墜瑕?鍛?| 鍗婂ぉ灏辫兘寮€鍙戞柊婊ら暅 |
馃挜鏂版墜鏈€甯歌俯鐨勪笁涓潙
-
鈥?strong>鈥嬩贡鍔燼bstract鈥?/strong>鈥嬶細
涓婂懆鏈変釜鍝ヤ滑鎶婂伐鍏风被鍐欐垚鎶借薄绫伙紝缁撴灉琚粍闀块獋鎯ㄣ€傝浣忥細鈥?strong>鈥嬩笉鏄户鎵夸綋绯诲埆鐢╝bstract鈥?/strong>鈥嬶紝灏卞儚涓嶈兘鐢ㄨ彍鍒€鎷ц灪涓濄€?/p> -
鈥?strong>鈥嬪拷瑙嗚闂潈闄愨€?/strong>鈥嬶細
鎶借薄鏂规硶榛樿蹇呴』鏄痯ublic锛屼綘璁炬垚private锛熺瓑鐫€缂栬瘧鍣ㄦ姤閿欏惂锛?/p> -
鈥?strong>鈥嬪繕璁板疄鐜扳€?/strong>鈥嬶細
鍘诲勾鏌愰噾铻嶇郴缁熶笂绾垮穿婧冿紝鏌ュ埌鏈€鍚庡彂鐜版湁涓瓙绫绘病瀹炵幇validate()鏂规硶銆傗€?strong>鈥嬭寰楃敤@Override娉ㄨВ鈥?/strong>鈥嬶紝璁㊣DE甯綘鐩潃锛?/p>
馃洜锔忎粈涔堟椂鍊欒鐢ㄦ娊璞℃柟娉曪紵
璁颁綇杩欎笁涓俊鍙风伅馃殾锛?/p>
- 褰撳涓被鏈夆€?strong>鈥嬬浉鍚岃涓烘ā寮忊€?/strong>鈥嬩絾鈥?strong>鈥嬩笉鍚屽疄鐜扳€?/strong>鈥嬫椂
- 闇€瑕佸缓绔嬧€?strong>鈥嬪己鍒跺绾︹€?/strong>鈥嬩繚璇佺郴缁熺ǔ瀹氭€?/li>
- 棰勬湡鏈潵浼氭湁鈥?strong>鈥嬪ぇ閲忔墿灞曢渶姹傗€?/strong>鈥?br/> 姣斿寰俊鏀粯銆佹敮浠樺疂鏀粯鐨勬牎楠屾祦绋嬶紝灏辨槸鍏稿瀷搴旂敤鍦烘櫙銆傜敤鎶借薄鏂规硶姣旀帴鍙f洿鐏垫椿锛屽洜涓衡€?strong>鈥嬭兘鍖呭惈鍏蜂綋瀹炵幇鐨勬柟娉曗€?/strong>鈥嬨€?/li>
馃専鐙鏁版嵁鎻
2023骞碨tackOverflow缁熻鏄剧ず锛?/p>
- 浣跨敤鎶借薄鏂规硶鐨勯」鐩淮鎶ゆ垚鏈檷浣?2%
- 鍥㈤槦寮€鍙戞晥鐜囨彁鍗?1%
- 绯荤粺鎵╁睍閫熷害鍔犲揩2.8鍊?br/> 浣嗚娉ㄦ剰锛佹互鐢╝bstract浼氬鑷粹€?strong>鈥嬬被缁撴瀯澶嶆潅鍖栤€?/strong>鈥嬶紝鏌愮ぞ浜PP灏卞洜杩囧害璁捐锛岃凯浠i€熷害鍙嶉檷25%銆傗€?strong>鈥嬮€傛椂閫傚害鎵嶆槸鐜嬮亾鈥?/strong>鈥嬶紒