개방-폐쇄 원칙은 무엇을 의미하나요?

藏色散人
풀어 주다: 2023-04-05 20:26:01
앞으로
7655명이 탐색했습니다.

열림 및 닫힘 원리

열림 및 닫힘 원리(OCP)는 객체 지향 디자인에서 "재사용 가능한 디자인"의 초석입니다. 이는 객체 지향 디자인에서 가장 중요한 원칙 중 하나입니다. 원칙의 수단을 열고 닫는다.

1988년 Bertrand Meyer는 그의 저서 "Object Oriented Software Construction"에서 열고 닫는 원칙을 제안했습니다. 그 원문은 다음과 같습니다. "소프트웨어 엔터티는 확장을 위해 열려 있어야 하지만 수정을 위해서는 닫혀 있어야 합니다." 번역: "소프트웨어 엔터티는 확장에는 개방적이고 수정에는 폐쇄되어야 합니다." 이 문장은 조금 전문적입니다. 좀 더 비공식적으로 이야기해 보겠습니다. 즉, 모듈(Modules), 클래스(Classes), 함수(Functions) 등과 같이 소프트웨어 시스템에 포함된 다양한 구성 요소는 수정되어야 합니다. 기존 코드를 삭제하고 새로운 기능을 도입합니다. 개방-폐쇄 원칙에서 "개방"은 컴포넌트의 기능 확장이 개방됨을 의미하고, 개방-폐쇄 원칙에서 "폐쇄"는 원본 코드의 수정이 폐쇄됨을 의미합니다. , 그럴 수 없습니다. 원본 코드를 수정해야 합니다.

개폐 원리에 따라 설계된 모듈은 두 가지 주요 특징을 가지고 있습니다.

(1) 확장 가능. 이는 모듈의 동작이 확장 가능하다는 것을 의미합니다. 애플리케이션의 요구 사항이 변경되면 모듈을 확장하여 이러한 변경 사항을 충족하는 새로운 동작을 가질 수 있습니다. 즉, 모듈의 기능을 변경할 수 있습니다.

(2) 수정을 위해 마감되었습니다. 모듈의 동작을 확장할 때 모듈의 소스 코드나 바이너리 코드를 변경할 필요가 없습니다. 링크 가능한 라이브러리, DLL 또는 .EXE 파일 등 모듈의 바이너리 실행 가능 버전은 수정할 필요가 없습니다.

구현 방법

열림과 닫힘의 원리를 구현하는 열쇠는 "추상화"에 있습니다. 시스템의 가능한 모든 동작을 추상 하위 계층으로 추상화합니다. 이는 특정 구현에서 제공해야 하는 모든 메서드의 특성을 지정합니다. 시스템 설계의 추상화 계층으로서 가능한 모든 확장을 예측해야 하므로 확장의 경우 하나 이상의 새로운 구체적인 구현으로 인해 시스템의 추상 하위 계층을 동시에 수정할 필요가 없습니다. 추상 하위 계층에서 파생될 수 있고 시스템 동작이 변경될 수 있으므로 시스템 설계가 확장될 수 있습니다.

우리는 소프트웨어 개발 과정에서 항상 수요 지향을 옹호해 왔습니다. 이를 위해서는 디자인 시 사용자 요구 사항을 매우 명확하게 이해하고 요구 사항에 포함된 가능한 변경 사항을 판단하여 어떤 상황에서 열림 및 닫힘 원칙을 사용해야 하는지 명확히 해야 합니다.

시스템의 변수 부분과 관련하여 소프트웨어 엔지니어링 구현의 관점에서 열기 및 닫기 원리를 더 자세히 설명하는 보다 구체적인 EVP(변형 캡슐화 원리)도 있습니다. EVP에서는 시스템을 설계할 때 변경될 수 있는 시스템의 모든 부분을 평가하고 분류해야 하며 각 가변 요소를 개별적으로 캡슐화해야 합니다.

실제 개발 프로세스의 초기 설계 단계에서는 시스템의 가능한 모든 동작을 나열하고 이러한 동작을 추상 하위 레이어에 추가해야 합니다. 이는 단순히 불가능할 뿐만 아니라 비경제적이기도 합니다. 그러므로 우리는 수정을 현실적으로 받아들이고 변경을 수용하여 코드가 확장에는 개방되고 수정에는 폐쇄될 수 있도록 해야 합니다.

이점

소프트웨어 시스템이 열기 및 닫기 원칙을 준수하는 경우 소프트웨어 엔지니어링 관점에서 최소한 다음과 같은 이점이 있습니다.

좋은 재사용성.

소프트웨어가 완성된 후에도 소프트웨어를 확장하고 새로운 기능을 추가할 수 있는데 이는 매우 유연합니다. 따라서 이 소프트웨어 시스템은 새로운 구성요소를 지속적으로 추가함으로써 변화하는 요구를 충족할 수 있습니다.

유지관리성이 좋습니다.

기존 소프트웨어 시스템의 구성 요소, 특히 추상 하위 계층은 수정되지 않으므로 소프트웨어 시스템의 원래 구성 요소의 안정성에 대해 걱정할 필요가 없으며 이로 인해 변화하는 소프트웨어 시스템이 어느 정도 유지됩니다. 안정성과 연속성.

위 내용은 개방-폐쇄 원칙은 무엇을 의미하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:hcoder.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!