🔴 加一个新形状,两种写法各要改几处

上面三个函数里各有一串 if/elif。现在要加第四种形状。数一数两种写法各要动多少处老代码。

开始练习 →

⚠️ 换写法之前,先证明两边等价

多态版和 if/elif 版各算一遍三个形状的面积,然后对拍。

开始练习 →

⚠️ 漏实现的那个,当场就该炸

新加的 Circle 忘了实现 area。写一个求和函数,让这种情况被抓住而不是静静地算错。

开始练习 →

「单一职责」怎么判断

判断一个类职责单不单一,最好用的问法是【0】。

开始练习 →

⚠️ 「开闭原则」开的是什么、闭的是什么

开闭原则说的是【0】。

开始练习 →

一个类方法很多,一定违反单一职责吗

某个类有十几个方法。这【0】。

开始练习 →

一个类干了三件事

三个形状:长方形 3×4、正方形边长 5、三角形底 6 高 5。这个类既算面积、又排版、又负责存: class ShapeReport: """一个类干了三件事:算面积、排版成文字、写进文件"

开始练习 →

⚠️ 改动理由:混在一起 vs 拆开

数一数:混在一起的那个类有几种改动理由,拆开之后单个类最多有几种: # 混在一起的那版:每个方法对应一种改动理由 MIXED = {"area": "面积算法变了", "

开始练习 →

自己写:把三件事拆成三个类

三个形状:长方形 3×4、正方形边长 5、三角形底 6 高 5。Shape 和 Store 已经拆好了,把 Formatter 补上。

开始练习 →

🔴 加一个新形状,老代码一行不动

三个形状:长方形 3×4、正方形边长 5、三角形底 6 高 5。只准往下加,不准往上改。把 Tri 写出来。

开始练习 →