TIL

TIL 241112

muerha 2024. 11. 12. 21:40

 

 

숙련 Spring 1주차

 


 

 

 

객체 지향 설계

 

 

SOLID 원칙

 

  • 단일 책임 원칙 SRP(Single Responsibility Principle) 

    하나의 클래스는 하나의 책임만 가져야 한다.
public class User {
		private String name; // 사용자 정보
    public void login() { /* 로그인 기능 */ }
    public void saveUser() { /* 데이터베이스 저장 기능 */ }
}

 

▼ 단일 책임 원칙 적용

public class User { /* 사용자 정보 관리 */ }

public class AuthService {
    public void login(User user) { /* 로그인 기능 */ }
}

public class UserRepository {
    public void saveUser(User user) { /* 데이터베이스 저장 */ }
}

 

 

  • 개방 폐쇄 원칙 OCP(Open Closed Principle)

    소프트웨어 요소는 확장에 대해 열려 있어야 하고 수정에 대해서는 닫혀 있어야 한다.

예) 새로운 도형이 추가될 때마다 AreaCalculator 클래스를 수정해야 됨

public class Shape {
    public String type;
}

public class AreaCalculator {
    public double calculate(Shape shape) {
        if (shape.type.equals("circle")) {
            return /* 원의 넓이 계산 */;
        } else if (shape.type.equals("square")) {
            return /* 사각형의 넓이 계산 */;
        }
    }
}

 

▼ 개방 폐쇄 원칙 적용

public interface Shape {
    double calculateArea();
}

public class Circle implements Shape {
    public double calculateArea() { return /* 원의 넓이 계산 */; }
}

public class Square implements Shape {
    public double calculateArea() { return /* 사각형의 넓이 계산 */; }
}

public class AreaCalculator {
    public double calculate(Shape shape) {
        return shape.calculateArea();
    }
}

 

 

  • 리스코프 치환 원칙 LSP(Liskov Substitution Principle)

    자식 클래스는 언제나 부모 클래스를 대체할 수 있어야 한다.
    부모 클래스를 사용하는 곳에서 자식 클래스를 사용해도 프로그램의 동작에 문제가 없어야 된다.

 

 

  • 인터페이스 분리 원칙 ISP(Interface Segregation Principle)

    특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
    하나의 큰 인터페이스보다는 여러 개의 작은 인터페이스로 분리해야 한다.

 

  • 의존관계 역전 원칙 DIP(Dependency Inversion Principle)

    구체적인 클래스에 의존하지 말고 인터페이스나 추상 클래스에 의존하도록 설계해야 한다.

 

 

 

 

'TIL' 카테고리의 다른 글

TIL 241118  (0) 2024.11.18
TIL 241115  (1) 2024.11.15
TIL 241111  (0) 2024.11.11
TIL 241108  (0) 2024.11.08
TIL 241107  (0) 2024.11.07