面向对象设计原则与函数式编程

Richard Warburton最近在演讲中讲到,面向对象编程有诸多公认的设计原则,比如SOLID原则,但是转向函数式编程后,许多开发人员就不知道如何运用这些设计技巧了。

\

Mark Seemann在最近的一篇博客中也就同一主题发表了自己的看法,如果你能将SOLID原则发挥到极致,那么函数式编程同样非常吸引人。

\

Richard是伦敦JCP委员会的一员。在演讲中,他认为SOLID原则——由Robert C. Martin在21世纪初期提出——是公认的面向对象编程设计原则之一,并仔细分析了SOLID的五个原则,试图找出与函数式相同或者至少与某一功能相关的蛛丝马迹。

\

根据Richard的经验,尽管许多开发人员不知道在函数式设计中如何使用已有的设计技巧,但是函数式编程往往有助于实现SOLID原则,并且在实现面向对象的封装方面,函数式思维确实能够助你一臂之力。

\

Richard得出的结论是每个SOLID原则与函数式都有对应关系。我们不用放弃那些已有的设计模式;与之相反,通过简化或清理,或者以一种简化方式使用这些已有知识,我们还能改善已有设计模式。

\

Mark是一位软件架构师并兼职独立顾问。以他的经验,SOLID原则可以促成一种设计风格,而且该风格使函数式编程颇有吸引力。

\

当使用SOLID原则中的单一职责原则(SRP)和接口隔离原则(ISP)时,最终的结果是代码库中有很多细粒度接口和类,每个这样的类和接口只有一个方法。

\

所以Mark由此得出结论,如果因为反复使用SOLID原则而导致很多只有一个方法的小类,那么我们可以将函数建模成具有数据的行为,这也可能是转向函数编程语言的机会,如F#语言。

\\

感谢臧秀涛对本文的审校。

\

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值