[编程技巧]用“多态”让代码更灵活

面向过程编码遇到的问题

写代码时常常会碰到这样一种状况:想生成不一样实例,那就须要作多重if判断或者switch下n个case。编程

好比家畜这一种类,根据状况我可能须要一只鸭,也可能须要一头牛:bash

switch(家畜):
 case 鸭:
	提走一只鸭
	break
 case 牛:
	牵走一头牛
	break
 ...
 ...
复制代码

这样的问题是每次追加一种家畜就须要追加新的处理语句,也颇有可能在其余各处的判断语句也要一块儿改。ui

代码量增长后,这真的是一个很是很是麻烦的事情。编码

解决办法:多态

面向对象的程序设计理论中,多态是指:spa

同一操做做用于不一样的类的实例时,将产生不一样的执行结果。即不一样类的对象收到相同的消息时,也能获得不一样的结果。设计

多态替换的是面向过程编程里的switch或者多重if判断,让扩展变得更灵活,不须要多处改动。code

不一样的家畜咱们就建立成不一样的类,而后全都继承自一个base类,好比家畜类。对象

根据具体的状况,咱们须要获取的是鸭类的实例,也多是牛类的实例,这个就看具体的状况。以后则调用家畜类里的方法,或者本身定义的方法便可。继承

这样就不须要每次都重复作一次switch判断或者if判断。it

好比:

牛类实例 执行方法:检验

鸭类实例 执行方法:检验

(检验这个方法,则是它们共同的父类家畜类定义的)
复制代码
相关文章
相关标签/搜索