diff --git a/src/main/java/legacy/Application.java b/src/main/java/legacy/Application.java index b7cd36d..d746017 100644 --- a/src/main/java/legacy/Application.java +++ b/src/main/java/legacy/Application.java @@ -1,8 +1,10 @@ package legacy; +import legacy.controller.CustomerController; + public class Application { public static void main(String[] args) { - CustomerService customerService = new CustomerService(); - customerService.run(); + CustomerController customerController = new CustomerController(); + customerController.run(); } } \ No newline at end of file diff --git a/src/main/java/legacy/CustomerService.java b/src/main/java/legacy/CustomerService.java deleted file mode 100644 index 49cd903..0000000 --- a/src/main/java/legacy/CustomerService.java +++ /dev/null @@ -1,66 +0,0 @@ -package legacy; - -import java.util.ArrayList; - -public class CustomerService { - ArrayList customers = new ArrayList<>(); - - public void run() { - registerCustomer("101", "홍길동", "ACTIVE"); - registerCustomer("102", "이순신", "ACTIVE"); - registerCustomer("103", "강감찬", "ACTIVE"); - - System.out.println("모든 고객 조회:"); - listCustomers(); - - updateCustomer("101", "홍길순"); - - deleteCustomer("102"); - - System.out.println("모든 고객 조회:"); - listCustomers(); - } - - public void registerCustomer(String id, String name, String status) { - CustomerLegacy c = new CustomerLegacy(); - c.id = id; - c.name = name; - c.status = status; - customers.add(c); - System.out.println("고객 등록: " + id + ", " + name + ", " + status); - } - - public void updateCustomer(String id, String newName) { - for (CustomerLegacy c : customers) { - if (c.id.equals(id)) { - System.out.print("고객 정보 수정: "); - System.out.print("수정 전 - " + c.name); - c.name = newName; - System.out.println(", 수정 후 - " + c.name); - break; - } - } - } - - public void deleteCustomer(String id) { - for (int i = 0; i < customers.size(); i++) { - if (customers.get(i).id.equals(id)) { - customers.remove(i); - System.out.println("고객 삭제 완료: " + id); - break; - } - } - } - - public void listCustomers() { - for (CustomerLegacy c : customers) { - System.out.println("ID: " + c.id + ", 이름: " + c.name + ", 상태: " + c.status); - } - } -} - -class CustomerLegacy { - public String id; - public String name; - public String status; -} \ No newline at end of file diff --git a/src/main/java/legacy/controller/CustomerController.java b/src/main/java/legacy/controller/CustomerController.java new file mode 100644 index 0000000..c0e2882 --- /dev/null +++ b/src/main/java/legacy/controller/CustomerController.java @@ -0,0 +1,37 @@ +package legacy.controller; + +import legacy.enums.CustomerStatus; +import legacy.model.CustomerManager; +import legacy.view.Console; + +public class CustomerController { + + CustomerManager manager = new CustomerManager(); + Console console = new Console(); + + public void run() { + console.showCreateCustomer( + manager.createCustomer("101", "홍길동", CustomerStatus.ACTIVE) + ); + console.showCreateCustomer( + manager.createCustomer("102", "이순신", CustomerStatus.ACTIVE) + ); + console.showCreateCustomer( + manager.createCustomer("103", "강감찬", CustomerStatus.ACTIVE) + ); + + console.showAllCustomers(manager.getCustomers()); + + console.showUpdateCustomer( + manager.getOldName("101"), + manager.updateCustomer("101", "홍길순") + ); + + + manager.deleteCustomer("102"); + console.showDeleteCustomer("102"); + + console.showAllCustomers(manager.getCustomers()); + } +} + diff --git a/src/main/java/legacy/enums/CustomerStatus.java b/src/main/java/legacy/enums/CustomerStatus.java new file mode 100644 index 0000000..2ef7405 --- /dev/null +++ b/src/main/java/legacy/enums/CustomerStatus.java @@ -0,0 +1,5 @@ +package legacy.enums; + +public enum CustomerStatus { + ACTIVE, INACTIVE +} diff --git a/src/main/java/legacy/model/Customer.java b/src/main/java/legacy/model/Customer.java new file mode 100644 index 0000000..bd7b061 --- /dev/null +++ b/src/main/java/legacy/model/Customer.java @@ -0,0 +1,22 @@ +package legacy.model; + +import legacy.enums.CustomerStatus; + +public class Customer { + private final String id; + private String name; + private CustomerStatus status; + + public Customer(String id, String name, CustomerStatus status) { + this.id = id; + this.name = name; + this.status = status; + } + + public String getId() { return id; } + public String getName() { return name; } + public CustomerStatus getStatus() { return status; } + + public void setName(String name) { this.name = name; } + public void setStatus(CustomerStatus status) { this.status = status; } +} \ No newline at end of file diff --git a/src/main/java/legacy/model/CustomerManager.java b/src/main/java/legacy/model/CustomerManager.java new file mode 100644 index 0000000..1d2dff2 --- /dev/null +++ b/src/main/java/legacy/model/CustomerManager.java @@ -0,0 +1,50 @@ +package legacy.model; + +import legacy.enums.CustomerStatus; + +import java.util.ArrayList; + +public class CustomerManager { + + private final ArrayList customers = new ArrayList<>(); + + public Customer createCustomer(String id, String name, CustomerStatus status) { + Customer customer = new Customer(id, name, status); + + customers.add(customer); + + return customer; + } + + + public Customer updateCustomer(String id, String newName) { + Customer customer = getCustomer(id); + customer.setName(newName); + + return customer; + } + + public void deleteCustomer(String id) { + customers.remove(getCustomer(id)); + } + + + public String getOldName(String id) { + return getCustomer(id).getName(); + } + + private Customer getCustomer(String id) { + for (Customer customer : customers) { + + if (customer.getId().equals(id)) { + return customer; + } + } + + throw new IllegalArgumentException("존재하지 않는 ID : " + id); + } + + public ArrayList getCustomers() { + return customers; + } +} diff --git a/src/main/java/legacy/view/Console.java b/src/main/java/legacy/view/Console.java new file mode 100644 index 0000000..87f51ea --- /dev/null +++ b/src/main/java/legacy/view/Console.java @@ -0,0 +1,40 @@ +package legacy.view; + +import legacy.model.Customer; + +import java.util.ArrayList; + +public class Console { + + public void showCreateCustomer(Customer customer) { + System.out.println("===== [고객 등록] ====="); + System.out.println( + "ID : " + customer.getId() + " | " + + "이름 : " + customer.getName() + " | " + + "상태 : " + customer.getStatus()); + } + + public void showUpdateCustomer(String oldName, Customer customer) { + System.out.println("===== [고객 정보 수정] ====="); + System.out.println("ID : " + customer.getId()); + System.out.println(oldName + " -> " + customer.getName()); + } + + public void showDeleteCustomer(String id) { + System.out.println("===== [고객 삭제 완료] ====="); + System.out.println("ID : " + id); + } + + public void showAllCustomers(ArrayList customers) { + System.out.println("===== [모든 고객 조회] ====="); + System.out.println("총 고객 수 : " + customers.size()); + + for (Customer customer : customers) { + System.out.println( + "ID: " + customer.getId() + " | " + + "이름: " + customer.getName() + " | " + + "상태: " + customer.getStatus() + ); + } + } +}