본문 바로가기

전체 글

(17)
L.리스코프 치환 원칙(Liskov substitution principle) effective-java 를 읽다 `리스코프 치환 원칙`에 대한 내용이 나왔는데 내용이 잘 생각나지 않아 정리하려 한다. 리스코프 치환 원칙이란? 컴퓨터 프로그램에서 자료형 S가 자료형 T의 하위형이라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형 T의 객체를 자료형 S의 객체로 교체(치환)할 수 있어야 한다는 원칙이다. 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다. 상위 타입을 전달받는 메서드 구현 public class BirdUtil { private BirdUtil() { } public static void fly(Bird bird) { bird.fly(); } }상속 관계의 클래스(Bird
O. 개방-폐쇄 원칙(Open-Closed Principle) 개방-폐쇄원칙 이란? 개방 폐쇄 원칙은 확장에는 열려 있고, 수정에 대해서는 닫혀있어야 한다는 원칙이다. 다시 말하면 객체의 확장에는 열려 있고, 객체의 수정은 닫혀있다라고 말할 수 있다. 개방-폐쇄원칙이 지켜지지 않은 코드의 문제점 public class UserDao { private static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver"; private static final String DB_URL = "jdbc:mysql://localhost:13306/tobi?useSSL=false"; private static final String DB_USER = "root"; private static final String DB_PASS = "mast..
S. 단일 책임 원칙(Single Responsibility Principle) 단일 책임 원칙이란? 모든 클래스는 `하나의 책임`만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함을 일컫는다. 클래스가 제공하는 모든 기능은 이 책임과 주의 깊게 부합해야 한다. (위키백과) 즉, 단일 책임 원칙은 클래스가 단 하나의 관심사에 집중해야 한다라는 것입니다. 단일 관심사에 집중하는 클래스는 유지보수하기 쉽고, 오류를 찾기가 용이합니다. 단일 책임 원칙을 지키지 않은 예시 //사용자 도메인은 사용자 정보를 저장, 변경의 책임이 있지만, 이메일의 유효성을 검사하거나 이메일을 전송하는 책임을 가질 필요는 없습니다. public class User { private static Pattern EMAIL = Pattern.compile("^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*..