BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 Jan Stenberg 关注 29 他的粉丝 ,译者 王振峰 关注 0 他的粉丝 发布于 2014年4月1日. 估计阅读时间: 2 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

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)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT