2012-10-02 3 views
1

디자인 패턴이 바뀌고 있습니다. 제가 읽고있는 것은 패턴이 이고 언어는 일반적으로입니다.디자인 패턴 및 언어 적합성

프로그래밍에는 OOP와 non-OOP가 있습니다 (비 OOP의 이름이 있습니까?).

저는 최근에 template pattern으로 놀았으며 OOP와 거의 반 직관적 인 것으로 보입니다. 사실 "OTOP가 어떻게 행동하길 원합니까?"라는 의미의 "Go To Methods"(파스칼을 어느 정도 생각 나게하는 것)의 모음 일뿐입니다.

일부 패턴이 언어에 더 적합하다는 것을 의미합니까 (적합하지 않은 것이 적합하지 않다는 것을 알 수 있습니다).

답변

2

템플릿 패턴은 관련 개체 그룹을 추상 형식으로 참조 할 수 있고 각각이 동일한 "계약"을 구현하기 때문에 유사한 방식으로 작업 할 수 있기 때문에 실제로 제대로 수행되면 OOP의 좋은 예입니다. 방법의. 그 패턴은 알고리즘/프로그램 구조를 정의한다고 말하지만, 대부분의 경우에는 실제로는 polymorphism입니다.

일부 패턴은 다른 언어에 더 적합하다고 주장 할 수 있지만 모든 언어로 어떤 패턴을 사용할 수도 있습니다.

+1

네, 다형성과 관련하여 생각하지 않았습니다. – Dave

1

패턴은 언어와 독립적이지만 언어 계열에 따라 다릅니다. OO 언어에 공통적 인 패턴과 함수형 언어에 공통적 인 패턴이 있습니다.

방문자 패턴을 예로 들어 봅시다 : 다중 디스패치를 ​​지원하지 않는 OO 언어의 하위 세트에서 널리 사용됩니다 (C++, Java , C# - short of dynamic s). 그러나 다중 디스패치가 언어 기능 (Common Lisp, Clojure) 인 언어에서는 완전히 불필요합니다.

OOP와 비 OOP에 관해서는 비 OOP 패러다임이 여러 가지 있습니다 : 기능 언어, 절차 언어 등. 많은 것은 실제로는 multiparadigm-languages입니다. C++ - OO, 절차 및 함수 언어의 기능을 제공합니다. 반면에, 많은 사람들은 타입이 C++의 퍼스트 클래스 객체가 아니기 때문에 실제 객체 지향 언어라고 생각하지 않습니다.