«design-principles» 태그된 질문

2
Javascript에 실제로 적용 가능한 OO 원칙이 있습니까?
Javascript는 프로토 타입 기반 객체 지향 언어이지만 다음 중 한 가지 방법으로 클래스 기반이 될 수 있습니다. 스스로 클래스로 사용할 함수 작성 프레임 워크에서 멋진 클래스 시스템 사용 (예 : mootools Class.Class ) Coffeescript에서 생성 처음에는 Javascript로 클래스 기반 코드를 작성하는 경향이 있었고 그것에 크게 의존했습니다. 그러나 최근 에는이 클래스 …

9
Liskov 대체 원칙을 위반하면 무엇이 잘못 될 수 있습니까?
나는 Liskov 대체 원칙에 대한 위반 가능성에 대해이 매우 투표가 많은 질문 을 따랐습니다. 나는 Liskov 대체 원칙이 무엇인지 알고 있지만, 여전히 내 마음에 분명하지 않은 것은 개발자가 객체 지향 코드를 작성하는 동안 원칙에 대해 생각하지 않으면 잘못 될 수 있다는 것입니다.

1
Liskov 대체 원칙은 인터페이스를 구현하는 클래스에도 적용됩니까?
LSP는 클래스가 기본 클래스를 대체 할 수 있어야하는데 파생 클래스와 기본 클래스는 의미 적으로 동일해야합니다. 그러나 LSP는 인터페이스를 구현하는 클래스에도 적용됩니까? 다시 말해서, 클래스에 의해 구현 된 인터페이스 메소드 가 사용자가 예상 한 것과 의미 적으로 다른 경우, 이것이 LSP의 위반으로 간주됩니까?

6
객체 지향 디자인의 느슨한 결합
나는 GRASP를 배우려고 노력 중이며 로우 커플 링에 대한 설명 (이 페이지 3 )을 발견했으며 이것을 발견 했을 때 매우 놀랐습니다. 클래스 의 메소드 addTrack를 고려하십시오. Album가능한 두 가지 메소드는 다음과 같습니다. addTrack( Track t ) 과 addTrack( int no, String title, double duration ) 커플 링을 줄이는 방법은 무엇입니까? …

4
데 미터 법칙은 커플 링 및 응집력에 관한 객체 지향 시스템에 어떻게 적용됩니까? [닫은]
폐쇄되었습니다 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 육년 전 . Demeter of Law는 커플 링 및 응집력을 가진 객체 지향 시스템에 어떻게 적용됩니까? 저는 "소프트웨어 개발 및 전문 …

3
인터페이스 분리 원리에 대한 두 가지 모순 된 정의 – 어느 것이 맞습니까?
ISP에서 기사를 읽을 때 ISP에 대해 두 가지 상반되는 정의가있는 것 같습니다. 첫 번째 정의에 따르면 ( 1 , 2 , 3 참조) ISP는 인터페이스를 구현하는 클래스가 필요하지 않은 기능을 구현하도록 강요해서는 안된다고 말합니다. 따라서 뚱뚱한 인터페이스IFat interface IFat { void A(); void B(); void C(); void D(); } class …

1
상속 계층에서 Liskov 대체 원칙을 확인하는 방법은 무엇입니까?
이 답변에서 영감을 얻었습니다 . 리스 코프 치환 원칙은 필요 있음 하위 유형에서는 전제 조건을 강화할 수 없습니다. 하위 유형에서는 사후 조건을 약화시킬 수 없습니다. 상위 유형의 변형은 하위 유형으로 유지되어야합니다. 히스토리 제한 사항 ( "히스토리 규칙"). 객체는 그 방법 (캡슐화)을 통해서만 수정 가능한 것으로 간주됩니다. 서브 타입은 수퍼 타입에 …

5
추상화에 따라 중요한 단점이 있습니까?
SAP (Stable Abstractions Principle)에서이 위키를 읽고있었습니다 . SAP는 패키지가 안정적 일수록 더 추상적이어야한다고 말합니다. 이것은 패키지가 덜 안정적이고 (변경 될 가능성이 높으면) 더 구체적이어야 함을 의미합니다. 내가 실제로 이해하지 못하는 것은 이것이 사실이어야하는 이유입니다. 확실하게 안정성에 관계없이 모든 경우에 추상화에 의존하고 구체적인 구현을 숨겨야합니까?

5
상속을 언제 중단해야합니까?
옛날 옛적에 나는 상속에 대해 Stack Overflow 에 대해 질문했다 . 체스 엔진을 OOP 방식으로 디자인한다고 말했습니다. 그래서 나는 조각 추상 클래스에서 모든 조각을 상속 받지만 상속은 여전히 ​​계속됩니다. 코드로 보여 드리겠습니다 public abstract class Piece { public void MakeMove(); public void TakeBackMove(); } public abstract class Pawn: Piece {} …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.