[編程技巧]用「多態」讓代碼更靈活

面向過程編碼遇到的問題

寫代碼時常常會碰到這樣一種狀況:想生成不一樣實例,那就須要作多重if判斷或者switch下n個case。編程

好比家畜這一種類,根據狀況我可能須要一隻鴨,也可能須要一頭牛:bash

switch(家畜):
 case 鴨:
	提走一隻鴨
	break
 case 牛:
	牽走一頭牛
	break
 ...
 ...
複製代碼

這樣的問題是每次追加一種家畜就須要追加新的處理語句,也頗有可能在其餘各處的判斷語句也要一塊兒改。ui

代碼量增長後,這真的是一個很是很是麻煩的事情。編碼

解決辦法:多態

面向對象的程序設計理論中,多態是指:spa

同一操做做用於不一樣的類的實例時,將產生不一樣的執行結果。即不一樣類的對象收到相同的消息時,也能獲得不一樣的結果。設計

多態替換的是面向過程編程裏的switch或者多重if判斷,讓擴展變得更靈活,不須要多處改動。code

不一樣的家畜咱們就建立成不一樣的類,而後全都繼承自一個base類,好比家畜類。對象

根據具體的狀況,咱們須要獲取的是鴨類的實例,也多是牛類的實例,這個就看具體的狀況。以後則調用家畜類裏的方法,或者本身定義的方法便可。繼承

這樣就不須要每次都重複作一次switch判斷或者if判斷。it

好比:

牛類實例 執行方法:檢驗

鴨類實例 執行方法:檢驗

(檢驗這個方法,則是它們共同的父類家畜類定義的)
複製代碼
相關文章
相關標籤/搜索