[java] 크리샤 패턴

크리샤(Christa) 패턴은 자바(Java) 프로그래밍에서 사용되는 디자인 패턴 중 하나입니다. 이 패턴은 객체 지향 소프트웨어 디자인에서 계층 구조를 쉽게 확장하고 수정할 수 있도록 돕는데 주로 사용됩니다.

크리샤 패턴의 기본 개념

크리샤 패턴은 기본적으로 한 개의 추상 클래스(abstract class)를 상속받아 여러 개의 클래스를 만드는 방식을 사용합니다. 이때, 서브클래스들은 추상 클래스의 메서드들을 오버라이딩하여 필요에 따라 다양하게 확장합니다.

예제

다음은 간단한 예제 코드입니다. 여기서는 동물을 나타내는 추상 클래스(Animal)를 만들고, 각 동물에 대한 구체적인 클래스를 만들어 보겠습니다.

// 추상 클래스
abstract class Animal {
    public abstract void sound();
}

// 개 클래스
class Dog extends Animal {
    public void sound() {
        System.out.println("멍멍");
    }
}

// 고양이 클래스
class Cat extends Animal {
    public void sound() {
        System.out.println("야옹");
    }
}

public class Main {
    public static void main(String[] args) {
        Animal dog = new Dog();
        Animal cat = new Cat();
        
        dog.sound(); // "멍멍" 출력
        cat.sound(); // "야옹" 출력
    }
}

위 예제에서 Animal 클래스는 추상 클래스로, DogCat 클래스가 이를 상속받아 각각 개와 고양이의 소리를 출력하는 방식으로 확장하고 있습니다.

결론

크리샤 패턴은 코드의 재사용성을 높이고, 유지보수를 용이하게 하는 데에 도움을 줍니다. 상속을 통해 객체의 행위를 공통 부분과 개별 부분으로 분리하고, 유연하고 확장 가능한 구조를 만들 수 있습니다.