객체 지향 설계에 대해 생각할 때 SOLID 원칙이 매우 유용하다는 것을 알았습니다 .
기능적 프로그래밍을 위해 맞춤화 된 유사 / 동등한 언어 불가지론 세트가 있습니까?
객체 지향 설계에 대해 생각할 때 SOLID 원칙이 매우 유용하다는 것을 알았습니다 .
기능적 프로그래밍을 위해 맞춤화 된 유사 / 동등한 언어 불가지론 세트가 있습니까?
답변:
동등한 것을 찾기는 약간 어렵지만 시도해 볼 수 있습니다.
SOLID는 기능 / 제국 영역에도 좋은 아이디어로 판명되었습니다.
SRP- '한 가지 일만'은 처음부터 명령형 프로그래밍에서 가져 왔습니다. 작고 집중된 기능을 갖는 것이 좋습니다.
OCP- 코드를 수정하지 않고 동작을 변경할 수 있습니다. 함수형 프로그래밍은 상속보다 더 높은 차수의 함수를 사용하지만 그 원칙이 유지됩니다.
LSP는 - 약간의 인터페이스 규약을 준수하는 것은 단지 함수형 프로그래밍에서 좋은 같은 객체 지향 같이한다. 정렬 함수가 비교자를 사용하면 '0은 같고 부정적인 결과를 제공하는 것보다 작고 긍정적 인 결과보다 큽니다'동작을 예상합니다.
ISP- 대부분의 기능적 언어에는 여전히 구조가 있습니다. 함수에 필요한 가장 작은 데이터 집합을 지정하는 것은 여전히 좋은 방법입니다. 데이터에 대한 최소한의 특정 인터페이스를 요구하는 것은 (T의 열거가 작동 할 때 왜 List of int를 사용합니까?) 여전히 좋은 습관입니다.
DIP- 함수를 하드 코딩하는 대신 매개 변수를 함수 (또는 검색하는 상위 차수 함수)에 지정하면 값을 얻기 위해 함수 지향 프로그래밍 에서처럼 객체 지향적입니다.
그리고 객체 지향 프로그래밍을 수행 할 때도 이러한 원칙 중 상당수는 객체의 메소드 디자인에도 적용됩니다.