我有那个代码示例:
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 ...")
Run Code Online (Sandbox Code Playgroud)
如您所见,两个客户端大多相同,并且应包含相同的名称(以便每个人都知道会发生什么)。现在我想干脆写bird_async(bird)。因为每个扩展 in 也bird应使用 in bird_async。这是可能的,但我的同事说,它不是 SOLID,因为我已经覆盖了wait_meep. 现在我正在寻找不同的灵魂并找到抽象类。我不知道的是,如果创建一个抽象类birdBase(ABC)也是 SOLID。我也会在那里覆盖,因为首先它是一个函数,然后是一个协程,或者我在这里错了?
什么是 SOLID 和 DRY 解决方案可以将这两个类组合在一起,而无需重命名方法?