回覆列表
  • 1 # 狂客說技術

    這不是會不會考慮的問題!習慣了!!

    寫程式碼的時候考慮設計模式和編碼規範已經成為一種編碼習慣,不用刻意而為。程式碼寫的多了,自己就有一套程式碼規範了,按照自己的規範寫對自己來說往往可讀性高。設計模式需要一定程式碼基礎才能在寫程式碼為信手拈來,使得程式碼結構更合理,實現更巧妙。

    常用的設計模式

    在我工作這六七年,接觸或者使用過很多設計模式,就普適性而言,以下三種設計模式使用次數最多。

    代理模式,代理模式是一種結構化設計模式,是指代理物件具有被代理物件相同的行為,這需要代理物件實現被代理物件的介面,並且持有被代理物件的例項!比如經典的王婆#西門慶就是一對代理關係,王婆作為代理方,代理西門慶和潘金蓮拉近關係,談成了改衣服的傳世經典業務!可能很多人都聽過動態代理,靜態代理,我這裡簡單做個說明,靜態代理就是指我們日常的編碼中用到的代理,手寫的代理類,在編譯的時候就打成.class檔案,啟動時載入進入jvm待用。動態代理是spring全家桶中使用超級多的設計模式,在程式執行時透過反射實現的程式碼增強,又分jdk動態代理和cglib動態代理,前者是我們上面說到的同介面式增強,後者使用繼承子類透過方法監聽的方式實現。在java中都提供現成可用代理工具,後續對動態代理做詳細講解。模版模式,模版模式相對比較簡單,但是很多場景都適用而且效果非常好,擴充套件起來特別簡單。模版模式往往有一個抽象基類,在基類中定義很多模版方法或者流程,每個子類只需要實現自己關注的程式碼部分而不用關注整體的實現流程或者細節。現在的專案中還用到模版模式,場景大致如下,要讀取很多第三方介面的資料然後處理,代理基類中完成整個請求的流程,子類只需要實現讀取資料的引數封裝和獲取資料之後的資料處理即可,而不需要關注封裝了引數之後怎麼做?資料處理完之後傳輸儲存等問題。觀察者模式,觀察者模式就像有很多雙都在盯著你,一旦你有風吹草動,馬上通知做後續處理!就像警察盯梢!比如一個大的系統後端的一個核心引數修改了之後去通知所有觀察者做相應應對!

    其他比如工廠模式,命令模式,裝飾模式介面卡模式等在程式碼中也都用過,因為篇幅問題簡單介紹以上三種。

    程式碼規範的標本

    對於編碼規範,有些地方挺想吐槽一下的。

    建議剛畢業的同學儘可能去大公司,對於規範這種東西還是大公司最規範。建議閱讀程式碼大全,非常好的一本書,雖然我已經讀了它七八年了,但是感觸比較深,特別好的對於程式碼規範這塊!看看重構 程式設計的22種怪味道,大概叫這個名字吧。

    對設計模式感興趣的童鞋可以看相關資料,推薦大話設計模式,通俗易懂,也可以關注我,有需要後續進行設計模式詳解。

    大家好,我是程式設計師大狂客,分享幫助我們更快成長!

  • 2 # 北大青鳥中博軟體學院

    設計模式(Design Pattern)即在某些場景下,針對某類問題的某種通用的解決方案,是前輩們對程式碼開發經驗的總結,是解決特定問題的一系列套路。對於程式設計師們來說,是非常需要的存在,畢竟在專案中,如果能夠合理的運用設計模式,就可以完美的解決很多問題,且效率極高!

    所以,程式設計師們在寫自己用的小程式時,會十分順手的去考慮設計模式和程式設計規範之類的。那麼,我們來簡單的聊一下,建立型模式中的6個設計模式:

    1、單例模式:某個類只能有一個例項,提供一個全域性的訪問點。

    2、簡單工廠:一個工廠類根據傳入的參量決定創建出那一種產品類的例項。

    3、工廠方法:定義一個建立物件的介面,讓子類決定例項化那個類。

    4、抽象工廠:建立相關或依賴物件的家族,而無需明確指定具體類。

    5、建造者模式:封裝一個複雜物件的構建過程,並可以按步驟構造。

    6、原型模式:透過複製現有的例項來建立新的例項。

  • 中秋節和大豐收的關聯?
  • 寶寶四個半月了最近開始喜歡吃手手了可是穿上小棉襖後手就夠不到嘴巴了,怎麼辦啊?