换一个存储,Reporter 一行没改

👁️ 2 人浏览 💬 0 人评论 ❤️ 添加收藏

三个形状:长方形 3×4、正方形边长 5、三角形底 6 高 5。Reporter 收的是"能 save 的东西",塞两种不同的存储各跑一次:

class MemStore:
    """存在内存里"""
    def __init__(self):
        self.box = []

    def save(self, text):
        self.box.append(text)


class LoudStore:
    """存的时候加个前缀(接口和 MemStore 一样)"""
    def __init__(self):
        self.box = []

    def save(self, text):
        self.box.append("[存]" + text)


class Reporter:
    """依赖的是"能 save 的东西",不是某一个具体的类"""
    def __init__(self, store):
        self.store = store

    def report(self, area):
        self.store.save("面积=" + str(area))

a = MemStore()
Reporter(a).report(12)
b = LoudStore()
Reporter(b).report(12)
print(a.box[0] + "|" + b.box[0])
提交你的答案
请登录后提交答案。
去登录
代码编辑器
Ctrl + Enter 运行
本次输入:
输出:

                        
👩‍🏫
AI
💬 题目评论

全部评论