728x90 반응형 C#50 2021.12.02_프로토타입패턴01.패턴소개 기존 인스턴스를 복제하여 새로운 인스턴스를 만드는 방법 기존 객체응용해서 새로운 객체 만들때 데이터 베이스 읽어와서 네트워크 http를 기반으로 만들어야한다면 그 인스턴스 만들때 마다 오래 걸리고 리소스를 많이 사용함 다 복사해서 새로운 인스턴스 만들어서 일부분만 고쳐쓴다면 더 빠르게 사용가능함 구현이 없는 clone()이라는 매소드를 복제기능을 제공할 클래스들이 해당 클래스 구현할 수 있게하는것 GithubRepository.java package me.whiteship.designpatterns._01_creational_patterns._05_prototype._01_before; public class GithubRepository { private String user; private Strin.. 2021. 12. 4. 2021.11.27_빌더패턴02.패턴적용하기 빌더 인터페이스 만들기 import java.time.LocalDate; public interface TourPlanBuilder { TourPlanBuilder nightsAndDays(int nights, int days); TourPlanBuilder title(String title); TourPlanBuilder startDate(LocalDate localDate); TourPlanBuilder whereToStay(String whereToStay); TourPlanBuilder addPlan(int day, String plan); TourPlanBuilder getPlan(); } 이렇게 인터페이스에 여러개의 메소드를 저의한다. 그리고 마지막에 getPlan을 생성함 이 곳에서 만약에 .. 2021. 11. 27. 2021.11.27_빌더패턴01.패턴소개 빌더패턴 인스턴스 생성과 관련있음 그 인스턴스가 다양한 구성으로 만들어질 수 있고 동일한 프로세스를 통해서 만들 수 있게해주는 패턴임 App.java package me.whiteship.designpatterns._01_creational_patterns._04_builder._01_before; import java.time.LocalDate; public class App { public static void main(String[] args) { TourPlan tourPlan = new TourPlan(); tourPlan.setTitle("칸쿤 여행"); tourPlan.setNights(2); tourPlan.setDays(3); tourPlan.setStartDate(LocalDate.of.. 2021. 11. 27. 2021.11.15_팩토리메소드패턴02.패턴적용하기 아무리 변경해도 코드가 같아야함 Whiteshipfactory.class |before public class WhiteshipFactory { public static Ship orderShip(String name, String email) { // validate if (name == null || name.isBlank()) { throw new IllegalArgumentException("배 이름을 지어주세요."); } if (email == null || email.isBlank()) { throw new IllegalArgumentException("연락처를 남겨주세요."); } prepareFor(name); Ship ship = new Ship(); ship.setName(name); .. 2021. 11. 15. 이전 1 ··· 8 9 10 11 12 13 다음 728x90 반응형