【发布时间】:2023-03-14 23:46:01
【问题描述】:
我正在阅读 Bob 叔叔的博客,尤其是他关于 if-else-switch 的文章。 我想更深入地了解我是否理解他的意思。
假设我有一个带有Users 的网络应用程序,我想根据他的性别显示用户的个人资料。
有些人会这样做:
if(user.sex == 'female') return renderFemaleProfil(user)
if(user.sex == 'male') return renderMaleProfil(user)
return renderUnknownSexProfilError()
但是为了尊重 Clean Architecture Robert C Martin 建议做 DIP :
如果我清楚地理解:
我需要一个接口User。创建一个返回多态对象的结构实现基于用户性别的用户(class Male and class Female)作为用户
完成后,如何显示我的个人资料?
我在返回 html 字符串的两个类中都放了一个 renderProfil() 函数?而只是做 user.renderProfil() ?
如果我在 Male 和 Female 配置文件中只有一个不同的部分怎么办?
我是否为Male 类创建renderPart1()、renderPart2() 和renderPart3Male(),为Female 类创建renderPart3Female()?并在单个函数中调用它们renderProfil() ?
值得吗?
感谢在这些方面启发我:)
【问题讨论】:
标签: oop if-statement polymorphism rendering clean-architecture