Skip to content

Instantly share code, notes, and snippets.

class OrderPlacedEvent {
private Order order;
}
class ShopSellerService {
@Inject
private EventBus eventBus;
public void sell(Order order) {
class ShopSellerService {
@Inject
@SMS
private Notifier notifier;
public void sell(Order order) {
order.toPlaced();
notifier.sendOrderPlacedNotification(order.getCustomer());
class Order {
Item[] items;
String orderId;
Customer customer;
void addItem(Item item) {
}
double getTotalPrice() {
//...
class Order {
Item[] items;
String orderId;
Customer customer;
Double totalPrice;
void addItem(Item item) {
//...
totalPrice = null;
}
//regular customer
class Customer {
private String name;
String getName() {
return name;
}
boolean canCancelDispatchedOrder() {
return false;
}
}
class Customer {
String name;
}
class Item {
String sku;
BigDecimal price;
}
class Order {
//domain
package com.company.bigproject.domain;
//or just
package com.company.bigproject;
//[...]
//presentation
package com.company.bigproject.web;
//[...]
//regular customer
class Customer {
private String name;
String getName() {
return name;
}
boolean canCancelDispatchedOrder() {
return false;
}
}
String orderId = request.getParam("id");
String sku = request.getParam("sku");
Order order = orderDao.findOneById(orderId);
Item item = itemDao.findOneBySku(sku);
order.addItem(item);
double total = 0.0;
for (Item item : order.getItems()) {
total += item.getPrice();
class Order {
Item[] items;
String orderId;
Customer customer;
Double totalPrice;
void addItem(Item item) {
//...
totalPrice = null;
}