Skip to content

Instantly share code, notes, and snippets.

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