首页
学习
活动
专区
工具
TVP
发布

程序袁的专栏

敏捷教练养成,https:://yuanshenjian.cn
专栏作者
20
文章
22278
阅读量
20
订阅数
聊聊面向对象设计中的Is-A
面向对象编程范式得到了广大开发者的青睐,在做面向对象软件设计的同仁也或多或少曾经心存困惑过。比如,怎么样才是正确的封装?如何恰当的继承?何时应该抽象? 对于设计,我们很难说对与错,通常只有好与不好的区分,而所谓的最佳实践也只是 -- 在当前约束下,人们所能找到的最佳解决方案。
袁慎建@ThoughtWorks
2020-04-16
5270
简单聊聊契约式设计(上)
我在阅读Bob大叔的《敏捷软件开发:原则、模式与实践》第十章的时候第一次接触Design by Contract这个概念。Bob大叔在讲述面向对象设计SOLID原则中的LSP(Liskov Substitution Principle)时,就借助DbC的设计思想来支撑LSP[1]。关于DbC,我将用两篇文章来简单聊聊。
袁慎建@ThoughtWorks
2020-04-16
5920
简单聊聊契约式设计(下)
在 上一篇文章 中通过里氏替换原则的示例,Bob大叔抛出了一个观点 – 做模型设计的时候,要基于客户程序使用的角度去审视模型的有效性。这就需要我们要去猜测客户程序的一些”合理”的假设。当一个事情需要靠猜测的时候,我们总会觉得心里不安。Bob大叔提到DbC这项技术,能够帮助我们来明确用户的合理假设。本文来聊聊如何借助DbC的设计思想来加持LSP。
袁慎建@ThoughtWorks
2020-04-16
1.4K0
让里氏替换原则为你效力
从事软件开发的朋友或多或少都听过以下一些原则:比如KiSS、DRY、LKP、COC、DbC、SoC、HP、SOLID等。这些原则已经在业界被证实了自身的价值,尤其当谈到面向对象设计的时候,SOLID则是一个避不开的主题。
袁慎建@ThoughtWorks
2018-12-26
1.1K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档