답변
전략 패턴은 런타임에 다른 알고리즘을 선택하는 것과 관련이 있습니다. 유지 보수 중에 클래스를 수정해야하는지 또는 어떻게 수정해야하는지에 대해서는 언급하지 않습니다.
개방/폐쇄 원칙은 유지 보수 중에는 확장을 허용하지만 수정은 허용하지 말아야합니다. 런타임에 다른 알고리즘을 구현하거나 선택하는 것에 대해서는 언급하지 않습니다.
이 두 가지가 여전히 동일하게 보이면 각 패턴을 통합 한 코드를 작성하는 것이 좋습니다. 차이가 분명해야합니다.
OCP는 전략보다 훨씬 더 일반적인 수준에서 온다 - 그것은 원칙보다는 패턴 그 이유가 있습니다. OCP에는 Y와 Z를 수행하는 클래스 X가 있어야하며 다른 클래스와 W 방식으로 공동 작업해야한다고 명시되어 있지 않습니다. 클래스는 수정을 위해 닫히고 확장자는이어야합니다.
OCP는 전략에 대한 일부 책임을 외부화하고 클래스 자체를 수정하는 대신 새로운 전략을 작성하여 OCP를 존중할 수있는 유일한 방법은 아닙니다. Abstract Factory와 같은 OCP를 달성하는 데 도움이되는 다른 패턴이 있습니다.
디자인 패턴 - 어떤 질병에 대한 치료제 같아요. 그리고 질병 - S.O.L.I.D.의 위반입니다.
한 가지 더 - 모든 디자인 패턴 준수 SOLID 원칙 및 기타 원칙 : 이 Incapsulate을 상속하는 구성을 선호 변화 높은 응집력과 낮은 커플 링을 수행 등 여기
http://www.remondo.net/solid-principles-csharp-open-closed/에서 몇 가지 예 :
... 이것은 열기/닫기 원칙을 위반합니다. ... 이것을 확립하는 한 가지 방법은 전략 패턴을 적용하는 것입니다. ...