从javabean类更新数据库是否合适?

从javabean类更新数据库是否合适?,java,mysql,javabeans,Java,Mysql,Javabeans,一点背景:我正在创造一个游戏。在那个游戏中,玩家可以拥有一所房子。房屋可能包含家具对象,这些家具可能设置了自定义纹理。一件家具可能包含不同数量的纹理。一件家具有几个纹理槽(0-x) 房屋类别: public class House { private List<Furniture> furniture; public House() { furniture = new ArrayList<Furniture>();

一点背景:我正在创造一个游戏。在那个游戏中,玩家可以拥有一所房子。房屋可能包含家具对象,这些家具可能设置了自定义纹理。一件家具可能包含不同数量的纹理。一件家具有几个纹理槽(0-x)

房屋类别:

public class House {
      private List<Furniture> furniture;

      public House() {
           furniture = new ArrayList<Furniture>();
      }

      public List<Furniture> getFurniture() {
            return furniture;
      }

      public void addFurniture(Furniture furniture) {
             furniture.add(furniture);
      }
}
公共类房屋{
私人家具清单;
酒店(){
家具=新阵列列表();
}
公共家具清单(){
归还家具;
}
公共家具(家具){
家具。添加(家具);
}
}
家具类别:

 public class Furniture {
       private Map<Integer, Texture> textures;

       public Furniture() {
             textures = new HashMap<Integer, Texture>();
       }

       public void setTexture(int index, Texture texture) {
             textures.put(index, texture);
       }
 }
公共级家具{
私有贴图纹理;
公共家具(){
纹理=新HashMap();
}
公共void setTexture(int索引、纹理){
纹理。放置(索引,纹理);
}
}
在玩家之家家具管理GUI中,将有如下内容:

List<Furniture> furniture = house.getFurniture();
// Let's assume that player selected one piece of furniture which he wants to edit
Furniture furniture = .... // This is the one he selected.
// Later on he chooeses a texture and I set it:
furniture.setTexture(some_index, new Texture(...));
List furniture=house.getFurniture();
//假设玩家选择了一件他想要编辑的家具
家具家具=…../这是他选的。
//后来,他选择了一种纹理,我将其设置为:
家具.setTexture(一些索引,新纹理(…);
问题


从setTexture方法内部更新数据库有意义吗?从数据保存类中与数据存储交互是一种好做法吗?

根据我的经验,直接在这些java bean中进行更新不是一种好做法。您应该使用DAO模式。 通过这种方式,您可以抽象模型上的所有CRUD操作


有关更详细的信息,您应该访问

,因此基本上,当我设置纹理时,我应该调用HouseDAO.updateFurniture(家具)之类的东西。我以前有过这个想法,但出于某种原因我拒绝了它…正是。通过这种方式,您可以分离关注点。请确保使用接口。接口?在这种情况下,这会给我带来什么?这是一个编程良好实践的问题。您可以使用接口,以便调用updateForniture方法的类可以忽略实际实现。例如:您创建了接口HouseDAO,该接口声明了方法updateForniture。客户端类将调用该接口方法。然后,您可以使用JDBC实现它,例如持久化修改。但是如果您的客户更喜欢JPA实现呢?您必须实现一个新类,但是客户端类仍然调用接口的方法。希望它足够清楚。那么这是抽象的问题了?我想我明白了。