ocp 예제

이 예제를 완료하려면 Program.cs 클래스를 수정해 보겠습니다: 각주는 클로저를 위반하는 변경이 항상 있기 때문에 이론적으로는 실제 클로저가 여러 번 실현될 수 있다는 것입니다. 예를 들어 영역 계산의 순서를 변경해야 하는 경우 영역 계산기를 변경해야 합니다. 그렇기 때문에 폐쇄는 느낌과 경험에 따라 현명하게 선택되어야합니다. 보험 청구 예제에 대한 이상적인 접근 방식은 클레임승인관리자 클래스를 유지되는 방식으로 설계하는 것이었을 것입니다: 벨로우는 오픈 클로즈 원칙을 위반하는 예입니다. 그것은 다른 모양의 그림을 처리 하는 그래픽 편집기 구현. GraphicEditor 클래스를 추가해야 하는 모든 새 셰이프 클래스에 대해 수정해야 하므로 닫기 닫기 열기 원칙을 따르지 않는 것은 분명합니다. 몇 가지 단점이 있습니다: 안녕하세요. 게시물 주셔서 감사합니다. 각 사례에 대해 새 인스턴스를 만드는 것보다 ClaimApprovalManager rahter의 동일한 인스턴스를 사용하는 것이 테스트에서 더 좋지 않습니까? 결국, 예를 들어, 우리는 보험 서베이어 유형을 따르는 모든 것을 받아 들일 수 있음을 보여주는 것입니다. 이 예제에서는 회사의 인사 부서와 주요 활동 중 하나인 인력 고용을 나타내는 클래스를 디자인합니다.

예를 들어 프로덕션 환경에서 완전히 작동하고 이미 테스트된 클래스가 있는 경우 변경 대신 확장하는 대신 확장하면 나머지 시스템에 미치는 영향이 더 적을 것입니다. 최종 결과는 두 경우 모두 동일하지만 코드가 중단된다는 의미로 첫 번째 결과는 좋은 메시지를 생성했습니다. 그러나 이것은 매우 모호합니다. 변수가 무엇인지 알 수있는 방법은 없습니다 – 우리의 경우 문자열 – 어떤 속성을 찾고 찾을 수 없습니다. 디버깅하고 문제를 해결하는 것은 어렵습니다. 프로그래머는 Progress 수업을 열고 읽고 이해해야 합니다. 이 경우 typehint을 명시적으로 지정하지 않은 계약은 Progress의 동작에 의해 정의됩니다. 이는 진행률로만 알려진 암시적 계약입니다. 이 예제에서는 getAsPercent() 메서드에서 전송된 두 필드와 길이에 대한 액세스에 의해 정의됩니다. 실제 생활에서 암시적 계약은 클래스에서 몇 초 동안 찾는 것만으로는 매우 복잡하고 발견하기 어려울 수 있습니다.

플러그인의 경우 공통 게이트웨이 인터페이스를 통해 새로운 기능과 기능을 연결할 수 있는 기본 또는 코어 모듈이 있습니다. 이 것의 좋은 예는 크롬 같은 웹 브라우저.

¡Contactanos!