• Java Refactoring Replace Constructor with Factory Method

    일반적으로 클래스를 생성할 때 우리는 new Object() 를 이용하여 클래스를 생성한다. 이 때 Object 에는 생성할 클래스의 이름을 적어주게 되는데 이를 클래스명이 하드코딩 되어있다고 한다. 이 장에서 나올 내용은 앞에서 이미 많이 사용한 내용이다. 팩토리 메서드를 간단히 이야기하면 생성자(Constructor)를 팩토리 메서드(Factory method)로 추상화 한 것이다. 생성할 때 생성자를 호출하여 생성하는...


  • Java Refactoring Replace Error code with Exception

    소프트웨어는 에러(의도치 않은 상황)이 발생한다. 사실상 개발자의 제어하에 둘 수 없는 상황이 무조건적으로 생긴다. 그 상황에는 시스템의 파워가 내려가거나 하드웨어의 수명이 다하거나 또는 통신망의 문제 부터 응용소프트웨어의 경우는 돌아가는 Os 에서 다른 소프트웨어들로 인해 메모리가 부족하다거나 컴퓨팅 파워 부족으로 연산이 느려져 화면을 늦게 그리게 된다거나 하는등의 경우들이 에러 이다. 이것들은...


  • Java Refactoring Replace type code with state/strategy pattern

    이전 포스팅에서 분류 코드를 서브 클래스로 치환하는 방법 및 경우를 보았다. 우리가 일반적으로 아는 MVC 패턴도 stratergy 패턴의 내용이 포함된 패턴이다. 앞에서 이용한 Sub Class 로 치환을 다시 생각해보면 생성시 객체의 분류가 인스턴스로 결정되었다. 즉 AdArticle -> Article, MyArticle -> Article 은 가능하지만 AdArticle -> MyArticle 은 힘들다. 수평관계에 있는...


  • 자바로 배우는 리팩토링 입문 리뷰

    각 주제별 리팩토링 하는 내용이 인트로에서 소개한 악취 및 기술적 부채의 어느 부분에 대한 내용인지에 대한 주제별 연결고리에 대한 표현이 약한 듯 하여 아쉽다. 물론 카탈로그 표와 UML 을 이용하여 나타내긴 했지만 예제가 하나의 어플리케이션으로 연결이 되지않아서 각각의 리팩토링 주제들이 이어지지 않는 느낌이 들었다. Network, Database, Database, Device 가 어우러진...


  • Java Refactoring Replace type code with SubClass

    이전 포스팅에서 분류 코드를 클래스로 치환 하는 방법에 대해 알게 되었다. 글 마지막에 이야기 했듯이 단순 분류를 하는 것 이상으로 그 이후의 동작이(메소드) 필요하다면 단순 클래스로 치환보다는 하위 클래스로 치환 하는 것이 쉽게 해결할 수 있는 방법이다. 개인적인 생각으론 단순 분류 코드는 enum 을 이용한 정리가 더 의미상 깔끔하지 않을까...