我是GUI世界/ OO设计模式的新手,我想在我的GUI应用程序中使用MVC模式,我已经阅读了一些关于MVC模式的教程,模型将包含数据,View将包含可视元素和控制器将在视图和模型之间建立联系.
我有一个包含ListView节点的View,ListView将使用Person Class(Model)填充名称.但我对一件事情有点困惑.
我想知道的是,如果从文件加载数据是由Controller或模型负责的?名称的ObservableList:它应该存储在Controller还是Model中?
我想在这里找到两个非常相似的问题的答案:
我应该将实体转换为Repository对象内的DTO并将其返回到服务层吗?
要么
可以从存储库层返回DTO对象吗?
现在我被困在我的Servlet(Servie层)中,例如尝试从以下位置检索所有Restaurant对象RestaurantOwnerRepository:
// RestaurantOwnerService (Servlet)
@Override
@Transactional
public List<RestaurantDTO> getAvailableRestaurants() {
List<Restaurant> availableRestaurants = restaurantOwnerRepository.getRestaurants(getSessionId());
return null;
}
Run Code Online (Sandbox Code Playgroud)
这里Restaurant是一个@Entity注释的类 - 这似乎是我不应该做的第一件事,因为服务层现在知道一个非常低级别的对象,它违反了在每个层中抽象数据的尝试.
如果我将每个转换Restaurant为a,那就不会是这种情况RestaurantDTO - 但是我应该这样做,这样了吗?
基本上改变:
// RestaurantOwnerRepository
@Override
public List<Restaurant> getRestaurants(String sessionId) {
RestaurantOwner restaurantOwner = this.get(sessionId);
// .. getting restaurants ..
return availableRestaurants;
}
Run Code Online (Sandbox Code Playgroud)
至
// RestaurantOwnerRepository
@Override
public List<Restaurant> getRestaurants(String sessionId) {
RestaurantOwner restaurantOwner = this.get(sessionId);
// .. getting restaurants ..
return ConvertEntity.convertRestaurants(availableRestaurants);
} …Run Code Online (Sandbox Code Playgroud)