Development Tip

객체 지향 프로그래밍의 대안?

yourdevel 2020. 10. 27. 23:34
반응형

객체 지향 프로그래밍의 대안?


OOP는 아마도 오늘날의 소프트웨어 설계에서 가장 많이 사용되는 프로그래밍 패러다임 일 것입니다. 내 질문은-어떤 다른 패러다임 이 그것과 경쟁 할 수 있고 oop 대신 설 수 있는가? 그 질문을 명확히하기 위해 다른 패러다임이 무엇인지 묻는 것이 아닙니다. 그들 중 많은 것들이 있고 나는 어떤 것을 알고 싶습니다.

  • 이론뿐만 아니라 실제로 사용되었습니다.
  • oop과 경쟁 할 수 있으므로 고통없이 또는 최소한으로 큰 프로젝트에서 사용할 수 있습니다.
  • 비즈니스 로직, 데이터베이스 등이 포함 된 데스크톱 앱을 개발하는 데 사용할 수 있습니다.
  • oop의 동반자와 함께 사용되지 않지만 oop를 대체 할 수 있습니다.

그리고 어떤 것이 있다면, 그것의 장단점은 무엇이며, 왜 그것이 oop보다 낫거나 나쁜지, 어떤 언어가 그것을 사용하는 것이 가장 좋은지, 인기있는 언어에서 그것을 사용하는 것은 어떻습니까, 어떤 디자인 패턴을 가질 수 있습니까? 완전히 교체 하시겠습니까?


함수형 프로그래밍 은 주로 학계에서 널리 사용되는 또 다른 프로그래밍 패러다임입니다. 함수형 프로그래밍 언어의 가장 좋은 예는 HaskellStandard ML 입니다.

함수형 프로그래밍과 객체 지향 프로그래밍의 근본적인 차이점 제어 흐름이 아닌 데이터 흐름 의 관점에서 프로그래밍한다는 것입니다 . 좋은 소개는 Simon Peyton-Jones의 Taming Effects with Functional Programming참조하십시오 .

업계에서 사용되는 함수형 프로그래밍의 좋은 예는 Erlang 입니다. 주로 통신, 분산 및 내결함성 시스템에 사용됩니다. 프레젠테이션보기 동시 세계 소프트웨어 - 얼랑 에 의해 조 암스트롱 .

함수형 프로그래밍과 OOP를 결합한 새로운 함수형 프로그래밍 언어도 있습니다. 두 가지 좋은 예는 .NET 플랫폼 용 F #Java 플랫폼 용 Scala 입니다. 종종 다른 언어로 작성된 플랫폼의 기존 라이브러리를 사용할 수 있습니다.

이제 새로운 프로그래밍 언어의 추세는 객체 지향 프로그래밍 및 함수 프로그래밍과 같은 여러 패러다임이 동일한 언어로 결합되는 Multi-paradigm 입니다.


절차 적 처리는 OOP가 나타나기 전의 모든 것이 었으며 일부 대규모 실제 응용 프로그램 (사실 대부분은 원래)과 많은 운영 체제를 생성했습니다.

최소한의 고통과 최대의 성능으로 대규모 제품에 확실히 사용할 수 있습니다.


벡터 관계형 데이터 모델링은 네트워크 상주 모델 브로커 인 글로벌 정보 네트워크 아키텍처 내에서 도메인 관련 의미론을 가진 실행 가능한 정보 모델을 생성하는 데 사용됩니다.


FP-Functional Programming은 매우 오랫동안 사용되어 온 매우 인기있는 프로그래밍 패러다임이며 최근 몇 년 동안 점점 더 두드러지기 시작했습니다. FP는 부작용이없는 가변성, 재귀 및 함수보다 불변성을 선호합니다. 인기있는 fp 언어의 예로는 Erlang, Scala, F #, Haskell 및 Lisp가 있습니다.


현재 OOP를 진정으로 대체 할 수있는 패러다임은 없습니다. OOP의 (이점) 문제는 리소스를 자동으로 해제하고 데이터를 검증하는 등 많은 양의 작업을 수행하며 전 세계 기존 라이브러리의 대다수는 말할 것도없고 코드를 쉽게 검증 할 수 있다는 것입니다. C ++, C # 또는 Java와 같은 OOP 언어로 작성됩니다. 이러한 대규모 도서관없이 잘 지내는 현실은 매우 의심 스럽다.

틈새 시장이나 학문적 세계에서는 많은 함수형 프로그래밍을 찾을 수 있습니다. 그러나 정말로 큰 프로젝트를하고 싶다면 OOP가 유일한 방법입니다.

제네릭 프로그래밍이 새로운 패러다임으로 떠오를 것이라고 생각합니다. 그러나 실제로 아직 개발 단계에 있으며 C ++ / D만이 진정으로 훌륭한 제네릭 프로그래밍을 제공합니다.

참고 URL : https://stackoverflow.com/questions/3467724/alternatives-to-object-oriented-programming

반응형