我有那个代码示例:
from time import sleep
import asyncio
class bird:
def __init__(self, sleeptime=1):
self.var = sleeptime
def wait_meep(self):
sleep(self.var)
print("Meep")
def do_sth(self):
print("Dop Dop Do do ...")
class bird_async:
def __init__(self, sleeptime=1):
self.var = sleeptime
async def wait_meep(self):
await asyncio.sleep(self.var)
print("Meep")
def do_sth(self):
print("Dop Dop Do do ...")
正如您所看到的,两个客户端基本相同,并且应包含相同的名称(以便每个人都知道会发生什么)。现在我想干脆地写bird_async(bird)。因为 in 中的每个扩展也bird应使用 in bird_async。这是可能的,但我的同事说,它不是 SOLID,因为我已经覆盖了wait_meep. 现在我正在寻找不同的灵魂并找到了抽象类。我不知道的是,创建一个抽象类是否birdBase(ABC)也很可靠。我也会覆盖那里,因为首先它是一个函数,然后是一个协程,或者我在这里错了?
在不重命名方法的情况下,将这两个类组合在一起的 SOLID 和 DRY 解决方案是什么?
大话西游666
呼啦一阵风
相关分类