«open-close» 태그된 질문

8
LSP vs OCP / Liskov 교체 VS Open Close
나는 OOP의 SOLID 원칙을 이해하려고 노력하고 있으며 LSP와 OCP는 비슷한 점이 더 많다는 결론에 도달했습니다. 개방 / 폐쇄 원칙은 "소프트웨어 엔티티 (클래스, 모듈, 기능 등)는 확장을 위해 개방되어야하지만 수정을 위해 폐쇄되어야한다"고 명시하고 있습니다. 간단히 말해서 LSP는 Foo모든 인스턴스 Bar가 파생 된 인스턴스로 대체 될 수 있으며 Foo프로그램은 동일한 방식으로 작동 …

8
Object.finalize ()를 재정의하는 것이 실제로 좋지 않습니까?
재정의에 대한 주요 두 가지 주장 Object.finalize()은 다음과 같습니다. 언제 호출되는지 결정할 수 없습니다. 전혀 호출되지 않을 수 있습니다. 내가 이것을 올바르게 이해한다면, 나는 그것이 Object.finalize()그렇게 미워할만한 충분한 이유라고 생각하지 않습니다 . 객체를 할당 해제하기위한 적절한 시간이 개발자가 아닌시기를 결정하는 것은 VM 구현과 GC에 달려 있습니다. 언제 Object.finalize()부름을받는 것이 중요 …

1
Bertrand Meyer (/ did)가 왜 서브 클래 싱이 "클로즈드"모듈을 확장 할 수있는 유일한 방법이라고 생각합니까?
Meyer의 Object-Oriented Software Construction (1988)에서 개방 / 폐쇄 원칙 을 다음과 같이 정의합니다 . 확장이 가능한 모듈은 열려 있다고합니다. 예를 들어, 포함 된 데이터 구조에 필드를 추가하거나 수행하는 기능 세트에 새 요소를 추가 할 수 있어야합니다. 다른 모듈에서 사용할 수있는 모듈은 닫혀 있다고합니다. 이것은 모듈에 잘 정의되고 안정적인 설명이 제공되었다고 …

4
모의가 개방 / 폐쇄 원칙을 위반합니까?
얼마 전에 나는 찾을 수없는 스택 오버플로 답변에서 공개 API를 테스트해야한다고 설명하는 문장을 읽었으며 저자는 인터페이스를 테스트해야한다고 말했습니다. 저자는 또한 메소드 구현이 변경되면 테스트 케이스를 수정할 필요가 없다고 설명했다. 이렇게하면 테스트중인 시스템이 작동하는 계약을 깨뜨릴 수 있기 때문이다. 즉, 메소드가 작동하지 않으면 테스트가 실패하지만 구현이 변경 되었기 때문에 실패해야합니다. 우리가 …

5
과부하가 개방 / 폐쇄 원칙의 예입니까?
위키 백과는 말합니다 "소프트웨어 엔티티 (클래스, 모듈, 함수 등)는 확장을 위해 열려 있어야하지만 수정을 위해 닫혀 있어야합니다." 함수 라는 단어가 눈에 들어 왔고, 이제 메소드에 과부하를 생성하는 것이 개방 / 폐쇄 원리의 예로 간주 될 수 있다고 생각할 수 있는지 궁금합니다. 예를 설명하겠습니다. 거의 1000 곳에서 사용되는 서비스 계층에 메소드가 …

7
리팩토링 및 개방 / 폐쇄 원칙
최근에 깨끗한 코드 개발에 관한 웹 사이트를 읽고 있습니다 (영어가 아니기 때문에 여기에 링크를 두지 않습니다). 이 사이트에서 광고하는 원칙 중 하나는 공개 폐쇄 원칙입니다 . 각 소프트웨어 구성 요소는 확장을 위해 개방되고 수정을 위해 폐쇄되어야합니다. 예를 들어, 클래스를 구현하고 테스트 한 경우 버그를 수정하거나 새로운 기능 (예 : 기존 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.