gpt4 book ai didi

java - Android/Java 中的 OOP

转载 作者:太空狗 更新时间:2023-10-29 15:55:20 25 4
gpt4 key购买 nike

我目前正在开发一个抽认卡应用程序是有原因的,因为我不喜欢现有的,第二个原因是我想提高我的 java/android 技能。

在我的应用程序中,我尝试使用 OOP。我的卡片存储在 sqlite 数据库中。

现在我的问题是:目前,代表单个抽认卡的我的对象“卡片”有自己的 DatabaseAdapter,它可以用来更新自己的状态,即它的点数。

 Card card = new Card();
card.setPoints(10); //<-- Also update its row in the database

还是这样做更好:

 DBAdapter dbAdapter = new DBAdapter();
Card card = new Card();
dbAdapter.setPoints(Card);//<-- Updates Card and Database!

你觉得哪个更好?

提前致谢!

最佳答案

您在第二个示例中所做的是不可取的,因为您正在产生副作用。更新数据库也是更新卡片,这是错误的。更新数据库应该做一件事,那就是更新数据库。

我更喜欢第一种方法,因为 Card 知道如何更新自己,但你也犯了更新数据库的同样错误。让数据库知道如何更新自己,让卡片知道如何更新自己。我认为它实现了关注点的清晰分离。

例如:

card.setPoints(points)//update card and only card
dbAdapter.setPoints(card) //update the database and nothing else.

关于java - Android/Java 中的 OOP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12550911/

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