設計模式 - php中,為什麼不在construct中寫很多邏輯代碼?

來源:互聯網
上載者:User
今天突然想到了這個問題.

回複內容:

今天突然想到了這個問題.

構造器的目的是init,你在裡面完全可以用1W行if else 將所有的邏輯都寫在裡面,但是你怎麼快速定位bug?某個邏輯被修改了,你又得橫切你的代碼。那麼oo的意義何在?

因為構造時一般並不會有複雜邏輯

構造器的目的是init,比如一個必須登入才能看的頁面,就可以在構造裡判斷是否登入了,而不需要在下邊的方法裡逐個判斷,就是說把公用的東西拿到這,可以適當把都需要用到的拿到這裡,如果寫太多,bug也不好定位

PHP的Class的構造方法算是整個PHP面向過程到物件導向變化中波折最多的一個,甚至連方法名都改動過,所以在很多三方庫或是開來源程式中,很少有大範圍使用構造方法的,目的是為了避免相容性問題和一些不必要的結果。另外,PHP的構造方法甚至不要求必須執行父類構造,我感覺這看上去會破壞程式流程,特別是接入和修改三方的時候。

每個函數或者方法代碼一般不過超過100行,更何況是初始化!!!

代碼重構書上普遍都有一個規則好像,
function 優於 if ··· else
靈活性高

文法 習慣 規範 最佳實務 這是一個人代碼風格的來源。
符合文法是最低標準,在建構函式寫複雜邏輯是符合文法的。但是不符合規範或者最佳實務。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.