JAVA
Java Builder pattern
Builder Pattern 빌더 패턴은 객체를 생성할 때 생성자가 여러 개의 인자를 가질 때 사용할 수 있는 객체 생성 패턴입니다. 빌더 패턴을 사용하면 인자가 많은 생성자를 사용할 때 인자를 쉽게 설정할 수 있습니다. 빌더 패턴을 사용하려면 우선 클래스의 인스턴스를 생성할 수 있는 빌더 클래스를 정의해야 합니다. 빌더 클래스는 생성자의 인자들을 필드로 가지고 있으며, 각각의 필드에 대해 setter 메소드를 정의합니다. 이렇게 정의된 빌더 클래스를 사용해 객체를 생성할 때는 인스턴스를 생성할 때 원하는 필드만 설정해서 생성할 수 있습니다. 예를 들어, 아래와 같은 피자 클래스가 있다고 가정해봅시다. public class Pizza { private final int size; private fina..
Smart Store 토이 프로젝트 #4 고객 분류 매개변수 메뉴
마지막 출력 파트이다. 출력은 크게 세가지로 분류된다. 기본적으로는 등급에 따라 나뉘어 출력되지만, 이름,사용금액,사용시간을 출력 기준으로 하여 코드를 써보았다. 프로젝트를 진행할 당시 인스턴스와 싱글톤패턴에대해 제대로 이해하고있지 않아서 static변수로 리스트를 선언하여 파라메터 또는 고객이 추가 수정 될때마다 새로 리스트를 만들게 코드를 구성했는데, 이때 static변수로 선언된 리스트에서 NullPointException과 ArrayIndexOutOfboundsException에 시달렸다... 두 예외처리를 하느라 당시 실력으로 3일이상 걸렸던것같다. public class Summary_ { public static int generalCNT=0; public static int vipCNT=0..
Smart Store 토이 프로젝트 #3 고객 분류 매개변수 메뉴
고객 분류 매개변수란 고객의 멤버십 등급을 General, VIP, VVIP 등으로 나누는 기준을 말한다. 이 프로젝트에서 나는 고객의 스토어 사용 시간과 사용 금액을 모두 충족할때 해당 등급으로 배정하는 시스템을 적용했다. #1 Parameter 설정 메뉴 public static void menu_select(){ int menu = Exception.scannerInt(); boolean status = false; switch (menu){ case 1: System.out.println("VIP등급의 기준을 설정합니다."); vip.set(); break; case 2: System.out.println("VVIP등급의 기준을 설정합니다."); vvip.set(); break; case 3: S..
Smart Store 토이 프로젝트 #2 고객 정보 관리 메뉴
고객 정보 관리 메뉴에 있어서 가장 중요한것은 고객 정보를 저장하는 기능이 가장 중요하다고 할수있다. 저장하는 기능을 구현해야 다른 기능을 구현하고 연결하고 작동할수 있기 때문에 가장 먼저 구현하기 시작했다. 우선 세부 메뉴의 경우 #1 메뉴 public static void customerMenu() { System.out.print("==============================\n" + " 1. 고객 정보 추가\n" + " 2. 고객 정보 보기\n" + " 3. 고객 정보 수정\n" + " 4. 고객 정보 삭제\n" + " 5. 메인메뉴\n"+ "==============================\n" + "메뉴를 선택해주세요:"); customerSelect(); 4가지 기능으로 구성..
Smart Store 토이 프로젝트 #1 구조
자바 기초를 어느정도 익히고 토이프로젝트를 하게되었다. 내용은 스마트 스토의 고객 관리 시스템을 구축 해보는 것이다. 구현 해야할 기능 크게 세가지 이다. 고객 관리, 고객 분류 매개변수 관리, 고객리스트 출력 아무런 정보 없이 혼자 구조를 짜 보고 별다른 내장함수를 사용하지 않고 직접 구현해 보자는 마음으로 토이프로젝트를 시작했다. #1 구조 첫번쨰로 각각 기능별로 패키지를 나누어 구성해 보았다. 5가지 패키지로 나누어 각 기능별로 클래스를 재구성 해보았다. 메뉴의 이동은 각 기능별 main에서만 이동이 가능하고 각 기능의 main에서 세부 기능을 가진 클래스의 메소드를 호출할수 있도록 했다. 추가적으로 Exception 패키지를 만들어 메뉴 이동이나 아이디 이름등 입력값을 받을때의 예외처리를 따로 분..