gpt4 book ai didi

oop - 哪个设计更好?

转载 作者:行者123 更新时间:2023-12-01 01:27:38 24 4
gpt4 key购买 nike

我有一个团队负责人对象,并且团队负责人拥有很多团队成员对象。
团队负责人和团队成员都有一个名为“writeDB”的函数。

所以,设计1:

Have a common writeDB function in DBUtility:
teamLeader.writeDB(); //calling DBUtility like this DBUtility.insert(self);
teamMember.writeDB(); //calling DBUtility like this DBUtility.insert(self);

设计二:
Both implementing a writeDB Interface:
teamLeader.writeDB(); //implement the write DB itself;
teamMember.writeDB(); //implement the write DB itself;

design 1可以将写DB的逻辑集中到一个类中,如果写DB有问题,我只需要改DBUtility类,另外,如果我想改DB,我只需要改一个地方。

design 2 可以将代码分成两个地方。如果一个开发者编写teamLeader逻辑,他不需要更新DBUtility,同样,如果代码移动到其他地方,他不需要复制无用的函数,例如DBUtility的teamMember writeDB函数是不需要的.

您认为如何更好地维护?或来自您的设计 3。谢谢你。

最佳答案

为什么 TeamMember 和 TeamLeader 必须完全了解数据库?我认为这样会更好:

DBUtility.write( teamMember );
DBUtility.write( teamLeader );

更好的是如果 DBUtility不是静态的,让您可以看到它真正依赖的是什么。静态与全局相同。 Global 假设只以一种方式执行此操作,这通常会在以后导致问题。
DBUtility dbUtility = new DBUtility( dbConnection );
dbUtility.write( teamMember );
dbUtility.write( teamLeader );

然后,您可能需要以 XML 格式写入磁盘。您应该能够在不更改您的 TeamLeader 的情况下添加此功能。和 TeamMember .
XMLUtility xmlUtility = new XMLUtility( stream );
xmlUtility.write( teamMember );
xmlUtility.write( teamLeader );

关于oop - 哪个设计更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6704405/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com