TIL (Today I learned

단일 책임 원칙(single responsibility principle)

코딩준우 2024. 3. 6. 21:03
  • 객체 지향 프로그래밍에서 단일 책임 원칙(single responsibility principle)이란 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함을 일컫는다.
import java.time.LocalDateTime;

public class SRP {
    public static int add(int num1, int num2) {
        return num1 + num2;
    }

    public static void numPrint(int num){
        System.out.println(num);
    }

    // 더하기와 프린팅하는 두가지 기능을 가지고 있는 매소드 (분리하여야함)
    public static int addPrint(int num1, int num2) {
        int num = num1 + num2;
        System.out.println(num);
        return num;
    }

    class Cat {
        String name;
        int age;

        public void eat() {
            System.out.println("eat()");
        }
        public void walk() {
            System.out.println("walk()");
        }

        public void speak(){
            System.out.println("speak()");
        }

        // print() 매소드는 고양이의 기능이 아니므로 repr을 이용하여 변경
        public void print() {
            System.out.println("name: " + name + ", age: " + age);
        }

        // log() 매소드는 고양이의 기능이 아니므로 repr을 이용하여 변경
        public void log() {
            System.out.println(LocalDateTime.now() + " : name: " + name + ", age: " + age);
        }

        // 자기 자신을 소개하는건 올바른 매소드
        public String repr() {
            return "name: " + name + ", age: " + age;
        }
    }
}