3_c#/OOP와 디자인 패턴 3

2. Observer 패턴

1.Observer 패턴-옵저버 패턴은 출판사와 구독자의 관계와 같다. ( 출판사는 subject 구독자는 옵저버 )-출판사는 구독자가 해지한다고 말하지 않는 한 계속 신문을 배달. -이 패턴에서는 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들한테 연락이 가고 자동으로 내용이 갱신되는방식으로 일대다 의존성을 정의한다.-데이터의 주인은 subject이다. -옵저버는 데이터가 변경되었을 때 주제에서 갱신해 주기를 기다리는 입장이기 때문에 의존성을 가진다. -이런 방법을 사용하면 여러 객체에서 동일한 데이터를 제어하도록 하는 것에 비해 깔끔한 객체지향 디자인이 가능하다. -주제가 옵저버에 대해서 아는 것은 옵저버가 특정 인터페이스를 구현한다는 것 뿐이다. -옵저버는 언제든지 새로 추가할 수 있다. ..

1. Strategy 패턴

0.Strategy 패턴 이 패턴에서는 알고리즘군을 정의하고 각각을 캡슐화하여 교환해서 사용할 수 있도록 만든다.이를 잘 활용하면 알고리즘을 사용하는 클라이언트와는 독립적으로 알고리즘을 변경할 수 있다.알고리즘은 객체의 동작이라고 볼 수 있다. 동적으로 이 "객체의 동작"을 바꿀 때 유용    >> 알고리즘이 클래스의 정의와 독립적으로 변경될 수 있어야 할 때 사용한다.  디자인 원칙 1 : 애플리케이션에서 달라지는 부분을 찾아내고, 달라지지 않는 부분으로부터 분리시킨다.코드를 변경하는 과정에서 의도하지 않은 일이 일어나는 것을 줄이면서 시스템의 유연성을 향상시킬 수 있다. 디자인 원칙 2 : 구현이 아닌 인터페이스에 맞춰서 프로그래밍 한다. 디자인 원칙 3 : 상속보다는 구성을 활용한다.상속은 불필요한..

0.객체 지향 언어와 C#

객체 지향 언어가 추구하는 코딩 방식을 이해하고 이를 기반으로 코딩을 한다면보다 효율적인 방식의 프로그램을 만들 수 있다.이에 더 나아가고자 한다면 여러 디자인 패턴을 통해 도움을 받을 수 있다.  0.객체지향 -프로그램을 보다 유연하고 변경이 용이하게 만들 수 있다 -코드의 변경을 최소화하고 유지보수를 하는 데 유리하다. -코드의 재사용을 통해 반복적인 코드를 최소화하고, 코드를 최대한 간결하게 표현할 수 있다. - 4가지 특성을 갖는다 : 추상성 / 상속 / 다형성 / 캡슐화 1. 추상화 -사물이나 표상을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출하여 파악하는 것 -객체지향의 추상화 : 객체의 공통적인 속성과 기능을 추출하여 정의하는 것 - C#에서 추상화 지원 방식 : 추상클래스 / 인터페이..