Skip to content

Commit d7109ab

Browse files
#3230 - Clean Architecture.
1 parent 10f3788 commit d7109ab

File tree

18 files changed

+58
-52
lines changed

18 files changed

+58
-52
lines changed

clean-architecture/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@
5050
<configuration>
5151
<archive>
5252
<manifest>
53-
<mainClass>com.iluwatar.cleanArchitecture.App</mainClass>
53+
<mainClass>com.iluwatar.cleanarchitecture.App</mainClass>
5454
</manifest>
5555
</archive>
5656
</configuration>

clean-architecture/src/main/java/com.iluwatar.cleanArchitecture/App.java

Lines changed: 0 additions & 35 deletions
This file was deleted.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.iluwatar.cleanarchitecture;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
5+
/**
6+
* Clean Architecture ensures separation of concerns by organizing code into layers, making it scalable and maintainable.
7+
*
8+
* In the example there are Entities (Core Models) – Product, Cart, Order handle business logic.
9+
* Use Cases (Application Logic) – ShoppingCartService manages operations like adding items and checkout.
10+
* Interfaces & Adapters – Repositories (CartRepository, OrderRepository) abstract data handling, while controllers (CartController, OrderController) manage interactions.
11+
*/
12+
@Slf4j
13+
public class App {
14+
15+
/**
16+
* Program entry point.
17+
*
18+
* @param args command line args
19+
*/
20+
public static void main(String[] args) {
21+
22+
ProductRepository productRepository = new InMemoryProductRepository();
23+
CartRepository cartRepository = new InMemoryCartRepository();
24+
OrderRepository orderRepository = new InMemoryOrderRepository();
25+
26+
ShoppingCartService shoppingCartUseCase =
27+
new ShoppingCartService(productRepository, cartRepository, orderRepository);
28+
29+
CartController cartController = new CartController(shoppingCartUseCase);
30+
OrderController orderController = new OrderController(shoppingCartUseCase);
31+
32+
String userId = "user123";
33+
cartController.addItemToCart(userId, "1", 1);
34+
cartController.addItemToCart(userId, "2", 2);
35+
36+
LOGGER.info("Total: ${}" + cartController.calculateTotal(userId));
37+
38+
Order order = orderController.checkout(userId);
39+
LOGGER.info("Order placed! Order ID: {}, Total: ${}", order.getOrderId(), order.getTotalPrice());
40+
}
41+
}

clean-architecture/src/main/java/com.iluwatar.cleanArchitecture/Cart.java renamed to clean-architecture/src/main/java/com/iluwatar/cleanarchitecture/Cart.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.iluwatar.cleanArchitecture;
1+
package com.iluwatar.cleanarchitecture;
22

33
public class Cart {
44
private Product product;

clean-architecture/src/main/java/com.iluwatar.cleanArchitecture/CartController.java renamed to clean-architecture/src/main/java/com/iluwatar/cleanarchitecture/CartController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.iluwatar.cleanArchitecture;
1+
package com.iluwatar.cleanarchitecture;
22

33
public class CartController {
44
private final ShoppingCartService shoppingCartUseCase;
@@ -11,6 +11,7 @@ public void addItemToCart(String userId, String productId, int quantity) {
1111
shoppingCartUseCase.addItemToCart(userId, productId, quantity);
1212
}
1313

14+
1415
public void removeItemFromCart(String userId, String productId) {
1516
shoppingCartUseCase.removeItemFromCart(userId, productId);
1617
}

clean-architecture/src/main/java/com.iluwatar.cleanArchitecture/CartRepository.java renamed to clean-architecture/src/main/java/com/iluwatar/cleanarchitecture/CartRepository.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.iluwatar.cleanArchitecture;
1+
package com.iluwatar.cleanarchitecture;
22

33
import java.util.List;
44

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.iluwatar.cleanArchitecture;
1+
package com.iluwatar.cleanarchitecture;
22

33
import java.util.ArrayList;
44
import java.util.HashMap;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.iluwatar.cleanArchitecture;
1+
package com.iluwatar.cleanarchitecture;
22

33
import java.util.ArrayList;
44
import java.util.List;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.iluwatar.cleanArchitecture;
1+
package com.iluwatar.cleanarchitecture;
22

33
import java.util.HashMap;
44
import java.util.Map;

clean-architecture/src/main/java/com.iluwatar.cleanArchitecture/Order.java renamed to clean-architecture/src/main/java/com/iluwatar/cleanarchitecture/Order.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.iluwatar.cleanArchitecture;
1+
package com.iluwatar.cleanarchitecture;
22

33
import java.util.List;
44

0 commit comments

Comments
 (0)