{"push_id":682027222,"size":5,"distinct_size":5,"ref":"refs/heads/develop","head":"28e6f6de8191b763d3b13bd90a55b6db966c6c58","before":"65c1dfe0a9378a5a3a49dfc57034ba3c035a2c1d","commits":[{"sha":"0ea70db2912bc0e251201c87ecbd8635a794e436","author":{"email":"0c47981363204001f9a532b2804a69d9a6f27ad2@gmail.com","name":"mykumi"},"message":"[디자인패턴] Chain-of-Responsibility 패턴 구현 (1)\n1. 패턴이 적용되지 않은 로직 구현\n- Benefit : 혜택의 모델 Class\n- BenefitTyps : 혜택의 종류에 대한 enum\n- BenefitApplication : 혜택을 적용하는 Business Class(Process Object class)\n   ㄴ 혜택의 종류에 따라 별도의 로직을 수행함.\n- BenefitClient : 혜택을 생성하여 적용하는 Client \n  \n[예제Case]\n혜택의 종류가 Point, Discount, Coupon의 종류가 있다.\n혜택의 종류에 따라 적용하는 로직이 다르다.","distinct":true,"url":"https://api.github.com/repos/UCJung/javalab/commits/0ea70db2912bc0e251201c87ecbd8635a794e436"},{"sha":"5990f87ff997d0213014a8542243e33cf53820f6","author":{"email":"0c47981363204001f9a532b2804a69d9a6f27ad2@gmail.com","name":"mykumi"},"message":"[디자인패턴] Chain-of-Responsibility 패턴 구현 (2)\n1. BenefitApplication의 리펙토링\n- BenefitApplication 에서 BenefitType에 따른 switch 문으로 분기를 하고 있다\n- 해당 부분에 SRP 관점으로 각각의 SubClass로 분리하는 형태를 적용한다.\n\n2. 적용 방향\n- BenefitApplication을 상속받는 Type별 처리 Class를 만든다.\n- Type별로 해당 Class의 객체를 생성하는 Factory Class를 만든다.\n\n3. 구현\n- Type별 Control Class 분리\n    ㄴ BenefitPointApplication\n    ㄴ BenefitDiscountApplication\n    ㄴ BenefitCouponApplication\n\n- BenefitType에 따른 객체를 반환하는 Factory Class 생성\n    ㄴ BenefitApplicationFactory\n\n- BenefitClient 변경","distinct":true,"url":"https://api.github.com/repos/UCJung/javalab/commits/5990f87ff997d0213014a8542243e33cf53820f6"},{"sha":"e41a4a97bee45728e0c4520a9d3bde49707ba4b2","author":{"email":"0c47981363204001f9a532b2804a69d9a6f27ad2@gmail.com","name":"mykumi"},"message":"[디자인패턴] Chain-of-Responsibility 패턴 구현 (3)\n1. Chain-of-Responsibility 적용\n\n- BenefitApplication 객체의 Chain 구조 적용\n  ㄴ BenefitApplication nextApplicator; 속성 추가\n  ㄴ setNextApplicator : nextApplicator 속성을 설정하는 메소드 추가\n  ㄴ excute 메소드 추가 : applyBenefit Method를 수행\n     ㄴ nextApplicator가 있을 경우 해당 객체의 excute 실행\n\n- BenefitApplication 구상클래스 로직 변경\n  ㄴ sourceBenefit의 Type에 따라 로직 수행여부 결정\n\n- BenefitApplicationFactory Chain 객체를 생성 반환하는 메소드 추가\n  ㄴ BenefitApplication 객체를 생성하여 반환한다.\n  ㄴ setNextApplicator 메소드로 BenefitApplication 간의 관계를 설정한다.","distinct":true,"url":"https://api.github.com/repos/UCJung/javalab/commits/e41a4a97bee45728e0c4520a9d3bde49707ba4b2"},{"sha":"d83fb0e135addc28c268549ac0ff207f90a1b32d","author":{"email":"0c47981363204001f9a532b2804a69d9a6f27ad2@gmail.com","name":"mykumi"},"message":"[디자인패턴] Chain-of-Responsibility 패턴 구현 (4)\n- 소스 정리\n- Client 소스를 간결하게 정리함.\n- Client는 BenefitApplicationFactory에 의존적으로 동작한다.","distinct":true,"url":"https://api.github.com/repos/UCJung/javalab/commits/d83fb0e135addc28c268549ac0ff207f90a1b32d"},{"sha":"28e6f6de8191b763d3b13bd90a55b6db966c6c58","author":{"email":"0c47981363204001f9a532b2804a69d9a6f27ad2@gmail.com","name":"mykumi"},"message":"Merge branch 'feature/Chain-of-Responsibility_Pattern' into develop","distinct":true,"url":"https://api.github.com/repos/UCJung/javalab/commits/28e6f6de8191b763d3b13bd90a55b6db966c6c58"}]}