'전략패턴' 태그의 글 목록
본문 바로가기
728x90
반응형

전략패턴5

C#적용_22.02.21_전략패턴 1.전략패턴이란? 은연중에 많이 쓰는 패턴이다. 프레임워크에서 많이 표현해서 사용 어떤 일을 수행하는 방법이 여러개 일때 그 여러 알고리즘을 각 개별적인 클래스로 캡슐화하고 그 캡슐화하나 것을 공통된 인터페이스로 추상해서 로직을 수행하는 곳에서는 추상화된 인터페이스만 사용함으로써 클라이언트 코드는 바뀌지 않지만 사용하는 알고리즘이 추가되거나 수정되어도 클라이언트 코드에 이상이 없음 Compareater인터페이스를 예로 들수 있음 2.전략패턴 적용 전 소스 2.1 생성자에서 변수적용 2.1.1 BlueLightRedLight.cs using System; using System.Collections.Generic; using System.Linq; using System.Text; using System... 2022. 3. 3.
22.02.20_자바와스프링에서찾아보는패턴 01.자바 01.1 StrategyInJava import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; public class StrategyInJava{ public static void main(String[] args){ List numbers = new ArrayList(); numbers.add(10); numbers.add(5); Collections.sort(numbers, new Comparator(){ @Override public int compare(Integer o1, Integet o2){ return o1 - o2; } }); //Collec.. 2022. 2. 21.
22.02.20_전략패턴의장점과단점 여러 알고리즘을 캡슐화 하고 상호 교환 가능하게 만드는 패턴 01.장점 새로운 전략을 추가하더라도 기존 코드를 변경하지 않음 상속대신 위임을 사용할 수 있음 상속은 하나 밖에 상속이 안되고, 상속를 강요하면 진짜 상속이 필요할 때 못쓰고 상위클래스가 변경되면 하위클래스가 영향을 받으니 좀더 구현을 이용해서 유연해짐 런타임에 전략을 변경할 수 있음 02.단점 복잡도가 증가함 클래스가 많이 늘어나고 복잡도 늘어난다고 할 수 있는데 한번만들어지고 재사용되지 않는다면 클래스는 많이 늘어나지 않을 것임 클라이언트가 구체적인 전략을 알아야함 https://github.com/3DPIT/study/blob/master/05.%EC%BD%94%EB%94%A9%EC%9C%BC%EB%A1%9C%ED%95%99%EC%8A%.. 2022. 2. 21.
22.02.20_전략패턴-패턴소개 은연중에 많이쓰는 것 프레임워크에서 많이 표현해서 씀 어떤 일을 수행하는 방법이 여러개일때, 그 여러 알고리즘 각 개별적인 클래스로 캡슐화하고 그 캡슐화한것을 공통된 인터페이스로 추상화해서 로직을 수행하는 곳에서는 추상화된 인터페이스만 사용함으로써 코드는 바뀌지 않지만 사용하는 알고리즘을 바꿔서 끼어넣을 수 있게 하는 것 자바 개발자에게 제일 많이 보이는것 compareater 인터페이스 있는데 이게 대표적인 전략 패턴, 우리가 그 인터페이스의 구현체를 제공해 주는것이 concreate 전략을 만들어주는과정으로 볼 수 있음 01.소스코드 Client public class Client{ public static void main(String[] args){ BlueLightRedLight blueLigh.. 2022. 2. 20.
728x90
반응형