inblog logo
|
taker
    디자인패턴

    전략패턴

    김인범's avatar
    김인범
    Nov 12, 2024
    전략패턴
    Contents
    1. 잘못된 코드2. 좋은 코드
    전략패턴은 구체적인것을 추상화해서 의존하는 기법이다.

    1. 잘못된 코드

    문지기가 고양이(Cat)에 의존하기 때문에, 쥐(Mouse)로 변경하면 기존 코드를 수정해야 한다. OCP위배
    package ch01; //SRP -> Single Responsibility Principle 단일 책임 public class Doorman { //해당 클래스의 책임 public void 쫒아내(Cat cat){ System.out.println(cat.getName() + " 쫒아내"); } } package ch01; public class Cat { private String name = "고양이"; public String getName() { return name; } } package ch01; // 쥐 Object public class Mouse { private String name = "쥐"; public String getName() { return name; } }

    2. 좋은 코드

    package ch01; public abstract class Animal { public abstract String getName(); } -------------------------------------- package ch01; public class Cat extends Animal{ private String name = "고양이"; public String getName() { return name; } } -------------------------------------- package ch01; // 쥐 Object public class Mouse extends Animal{ private String name = "쥐"; public String getName() { return name; } } -------------------------------------- package ch01; public class Doorman { //해당 클래스의 책임 public void 쫒아내(Animal animal){ System.out.println(animal.getName() + " 쫒아내"); } } -------------------------------------- package ch01; public class App { public static void main(String[] args) { Doorman doorman = new Doorman(); Cat cat = new Cat(); Mouse mouse = new Mouse(); doorman.쫒아내(cat); doorman.쫒아내(mouse); } }
    Share article

    taker

    RSS·Powered by Inblog