🔴 加一个新形状,两种写法各要改几处
上面三个函数里各有一串 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 写出来。
开始练习 →