编写一个程序,该程序具有以产品类开头的多个类。还有继承产品类的计算机,软件和立体类。笔记本电脑和桌面类继承了计算机以及继承Stereo类的家庭影院和汽车音响。 该程序应允许您输入新产品并将其保存到数据库中。根据文件中的记录数,为每个产品提供唯一的ID号。在详细信息选项卡上,您可以查看文件中的每条记录,查看每个产品的详细信息,甚至修改记录。
我做了什么 -
在DTO包中,
public interface Product {
public int productId();
public String name();
public int price();
public String type();
public void setName(String name);
public void setPrice(int price);
}
然后..我把计算机作为抽象类,扩展产品(I),桌面和笔记本电脑正在扩展计算机并覆盖产品的所有方法(I)。同样,我为立体声做了。
然后,在DAO包中
public interface ProductDao {
public boolean addProduct(Product product);
public boolean deleteProduct(int productId);
public boolean updateProduct(int productId);
public void retrieveAll();
}
然后我在ProductDaoImpl类中实现了这个方法。我的程序运行正常。 但我的设计呢?这是对的吗 ? 如果没有,那么请建议我一个更好的设计。
答案 0 :(得分:0)
不好的是,您需要为每个具体产品创建太多类:DTO,DAO接口,DAO实现。考虑您已经实现了许多产品,现在需要对数据库访问进行更改。您需要进行太多更改。即使是基类,它看起来也不好。
今天最好使用ORM作为此类事物的标准方式。使用其他好方法,您甚至可以在运行时轻松切换数据库提供程序,而您的代码似乎对更改非常重要。