BusinessObject和Domain Object的区别举例和具体代码
BusinessObject和Domain Object是面向对象设计中的两个概念。
Domain Object是表示业务领域中的实体或概念的类,它们通常包含业务规则和行为。例如,在一个电子商务系统中,商品、订单、用户等都可以作为Domain Object。
BusinessObject是表示业务操作的类,它们通常包含业务流程和操作规则。例如,在一个电子商务系统中,购买商品、取消订单、查询用户信息等都可以作为BusinessObject。
具体的代码示例:
Domain Object:
public class Product {
private String name;
private double price;
private int stock;
public Product(String name, double price, int stock) {
this.name = name;
this.price = price;
this.stock = stock;
}
public String getName() {
return name;
}
public double getPrice() {
return price;
}
public int getStock() {
return stock;
}
public void setStock(int stock) {
this.stock = stock;
}
}
BusinessObject:
public class OrderManager {
private ProductDao productDao;
private OrderDao orderDao;
public OrderManager(ProductDao productDao, OrderDao orderDao) {
this.productDao = productDao;
this.orderDao = orderDao;
}
public void purchaseProduct(User user, Product product, int quantity) {
if (product.getStock() < quantity) {
throw new RuntimeException("Not enough stock");
}
double totalPrice = product.getPrice() * quantity;
Order order = new Order(user, product, quantity, totalPrice);
orderDao.save(order);
product.setStock(product.getStock() - quantity);
productDao.update(product);
}
public void cancelOrder(Order order) {
Product product = order.getProduct();
product.setStock(product.getStock() + order.getQuantity());
productDao.update(product);
orderDao.delete(order);
}
}
在上面的示例中,Product类是一个Domain Object,表示商品信息;OrderManager类是一个BusinessObject,表示订单管理。在OrderManager类中,purchaseProduct方法和cancelOrder方法都是业务操作,包含了业务规则和流程
原文地址: http://www.cveoy.top/t/topic/fEDp 著作权归作者所有。请勿转载和采集!