美文网首页CODING - 让开发更简单!
《代码大全》——用多态代替条件语句

《代码大全》——用多态代替条件语句

作者: 猿哥媛姐 | 来源:发表于2016-06-23 11:56 被阅读184次

用多态代替条件语句(尤其是重复的case语句) 结构化程序里很多的case语句中的逻辑都可以被放到继承关系中,通过多态函数调用实现。

《代码大全2》是个大部头,全书900多页,让人望而生畏。但是还是有好多东西,作者只是点到为止,细节的东西还要自己去深究。在《重构》这一章中,提到了用多态代替条件语句(尤其是重复的case语句)。作者对此只是简单地说明了一下,而没有更多的说明。当然作者还是很负责任的,他告诉了读者可以在《重构:改善既有代码的设计》中详细了解。

可能自己没有很多的项目积累,对上面这段话不太理解(找个不懂的理由~_~)。而且,手上这个大部头已经让自己很头疼了,再去找一本书来看,估计自己非得疯掉不可。剩下的办法就是参考一些别人的理解咯。

网上找一找,这篇还不错 简洁代码之道(1):用多态替代条件语句 - 推酷

别人的终究是别人的,要吸收成自己的,才算是真正的收获。

基本的意思是,如果你的代码中出现了多次重复的

第1处

if(state == A){

// do A1

}

else if(state ==B){

// do B1

}

else if(state ==C)

{

// do C1

}

第2出

if(state == A){

// do A2

}

else if(state ==B){

// do B2

}

else if(state ==C)

{

// do C2

}

......

第 n处

if(state ==A){

// do An

}

else if(state ==B){

// do Bn

}

else if(state ==C)

{

// do Cn

或等价的case语句。其中,每个地方的do somthing是不一样的,这个时候可以考虑用在继承关系中用多态来实现。如下图(原谅我懒得用软件画图了,而且方向还不对):

《代码大全》——用多态代替条件语句

那么,上面的代码修改为

第一处

F f = Factory.createF(state)//更具state创建具体的子类实例

f.func1();

相关文章

  • 《代码大全》——用多态代替条件语句

    用多态代替条件语句(尤其是重复的case语句) 结构化程序里很多的case语句中的逻辑都可以被放到继承关系中,通过...

  • 简洁代码之道(1):用多态替代条件语句

    前言 本文是我看了 谷歌简洁代码演讲系列 中的 多态和条件语句 的总结。大部分的条件语句是可以用多态代替的,本文将...

  • 对抽象类与接口的一点思考

    前言 之前写了一篇文章 简洁代码之道(1):用多态替代条件语句,有人问实现多态的时候为什么用抽象类而不是接口。当时...

  • 代码优化-多态代替IF条件判断

    代码优化-多态代替IF条件判断 场景描述 在开发的场景中,常常会遇到打折的业务需求,每个用户对应的等级,他们的打折...

  • 流程控制语句

    条件语句 Java代码块中,程序默认是顺序结构,想要更改执行顺序,可以用条件语句 if条件语句 语法: if条件语...

  • 第四节 Swift 条件判断

    条件语句用来控制代码的执行路径,常见的 if ... else 就是条件判断语句。 条件分支判断 用 if ......

  • Unity Shader优化

    (1) 用step()代替if else等条件语句:(edge=step(edge,_Edge);表示if(edg...

  • Python 3的编程基础

    条件语句 条件语句是一种根据条件执行不同代码的语句,如果条件满足则执行一段代码,否则执行其他代码。Python中条...

  • Day4-总结

    一.if条件语句 1.if-elif-else结构 1语法:if 条件语句1:代码块1elif 条件语句2:代码块...

  • 0.5 PHP 条件语句

    流程图 语句的代替语法PHP 中提供了条件语句的代替语法:包括 if、while、for、foreach、swit...

网友评论

    本文标题:《代码大全》——用多态代替条件语句

    本文链接:https://www.haomeiwen.com/subject/cuwndttx.html