程序代码进化的一些思考:从面向对象到设计模式,到函数式编程_最新动态_新闻资讯_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 新闻资讯 > 最新动态 > 程序代码进化的一些思考:从面向对象到设计模式,到函数式编程

程序代码进化的一些思考:从面向对象到设计模式,到函数式编程

 2014/9/15 17:49:15    程序员俱乐部  我要评论(0)
  • 摘要:最初面向对象是为了保持状态的针对性:ClassP{状态a,状态b,状态c,状态d,状态e,状态f,...}P的方法:fun1{操作ab}fun2{操作abc}fun3{操作d}fun4{操作ef}...在面向对象使用久了之后,开发者们必定为庞大的状态数量和方法数量而吓退,从而怀疑起面向对象的可用性。于是,设计模式,在反复的推导实践中,被提炼出来用于简化问题:ClassP{状态a,状态b,状态c}ClassM{状态d}ClassN{状态e,状态f}P的方法:fun1{操作ab}fun2
  • 标签:程序 函数 代码 进化 模式 编程 设计 设计模式
class="topic_img" alt=""/>

  最初面向对象是为了保持状态的针对性:

Class P { 状态a, 状态b,状态c, 状态d,状态e,状态f, ... }

  P 的方法:

fun1{操作 a b}

fun2{操作 a b c}

fun3{操作d}

fun4{操作 e f}

...

  在面向对象使用久了之后,开发者们必定为庞大的状态数量和方法数量而吓退,

  从而怀疑起面向对象的可用性。

  于是, 设计模式,在反复的推导实践中,被提炼出来用于简化问题:

Class P { 状态a, 状态b,状态 c }

Class M { 状态 d }

Class N { 状态e,状态 f }

  P 的方法:

fun1{操作 a b}

fun2{操作 a b c}

fun3{通过M操作d}

fun4{通过N操作 e f}

  P 的状态和方法被委托到与 d e f 联系更紧密的 M N 对象中操作。

  开发者关心的是 P M N 的通信, 而不是P的一大堆方法的逻辑。

  无论是对描述,还是思考设计,都是一种质的提升。

  在函数式鼓吹现代化改革中,辩证的思考函数式所提倡的“状态不可变”,

  可以在面向对象中加入新的设计方式:

Class P { 状态 a }

Class M { }

Class N { }

  P 的方法:

fun1{操作 a b}

fun2{操作 a b c}

fun3{通过M获得d}

fun4{通过N获得 e f}

fun5{获得b}

fun6{获得c}

  再一次简化“状态”,函数式的字面表示更趋向于“return”,而不是“=”赋值。

  所以,对于不是特别重要的状态,对内存影响不重大的状态,

  可以放入函数的 return 中。

  而把特别重要的状态,经常变动并需要“缓存”“记忆”的状态保留。

  再一次的减少维护状态的数量。

  附注: 函数式另外的一种价值

Class P { fun1(m实例) {使用m的方法 fun11;}  }

可以写为 Class P { fun1(fun11) {使用 fun11;}  }

  这种方式对于“中介者”/控制器的动态能力,具有显著提升。

  • 相关文章
发表评论
用户名: 匿名