«solid» 태그된 질문

설계 원칙 세트에 대한 니모닉 : 단일 책임, 개방 폐쇄, Liskov 대체, 인터페이스 분리, 종속성 반전

8
아무것도 나타내지 않는 클래스-맞습니까?
응용 프로그램을 설계하고 있는데 SOLID와 OOP를 올바르게 이해하고 있는지 잘 모르겠습니다. 수업은 한 가지 일을하고 잘해야하지만 다른 한편으로는 우리가 다루는 실제 사물을 나타내야합니다. 필자의 경우 데이터 세트에서 기능 추출을 수행 한 다음 기계 학습 분석을 수행합니다. 세 개의 클래스를 만들 수 있다고 가정합니다. 특징 추출기 데이터 세트 분석기 그러나 FeatureExtractor …

8
수업의 실제 책임은 무엇입니까?
OOP에서 명사를 기반으로하는 동사를 사용하는 것이 합법적인지 궁금합니다. 이 기사 의 요점에 여전히 동의하지 않더라도이 훌륭한 기사를 발견 했습니다. 문제를 조금 더 설명하기 위해이 기사에서는 FileWriter클래스 가 없어야한다고 기술 하지만, 글쓰기는 액션 이므로 클래스 의 메소드 여야합니다 File. 루비 프로그래머가 FileWriter클래스를 사용하지 않을 가능성이 있기 때문에 (언제나 File.open파일에 액세스하는 방법 …

5
종속성 반전은 고차 함수와 어떤 관련이 있습니까?
오늘 저는 F # 개발에서 SOLID 원리의 관련성을 설명하는이 기사를 보았습니다. F # 및 설계 원칙 – SOLID 그리고 저자는 "종속성 역전 원리"라는 마지막 주제를 다루면서 다음과 같이 말했습니다. 기능적인 관점에서, 이러한 컨테이너 및 주입 개념은 간단한 고차 함수 또는 언어에 내장 된 중간자 형태의 패턴으로 해결할 수 있습니다. 그러나 …

11
각 반에 하나의 책임이 있는지 확인하십시오. 왜 그렇습니까?
Microsoft 문서, Wikipedia SOLID 프린시 페 기사 또는 대부분의 IT 설계자에 따르면 각 클래스마다 하나의 책임 만 갖도록해야합니다. 모든 사람이이 규칙에 동의하는 것 같으면이 규칙의 이유에 대해 아무도 동의하지 않는 것 같아 이유를 알고 싶습니다. 어떤 사람들은 더 나은 유지 보수를 인용하고, 어떤 사람들은 쉬운 테스트를 제공하거나 클래스를보다 강력하거나 안전하게 …


5
상수를 어디에 두어야하고 왜합니까?
대부분의 대규모 응용 프로그램에서는 일반적으로 "상수"위치가 몇 군데 있습니다. GUI 및 내부 상수에 대한 하나의 클래스 (탭 페이지 제목, 그룹 상자 제목, 계산 요소, 열거) 데이터베이스 테이블 및 열에 대한 하나의 클래스 (이 부분은 코드가 생성됨)와 읽을 수있는 이름 (수동으로 할당 됨) 응용 프로그램 메시지 (로깅, 메시지 상자 등)를위한 하나의 …

6
Clean Code의 블록과 추가 매개 변수에 추가 라인
문맥 에서 클린 코드 , 35 페이지, 그것은 말한다 이는 if 문, else 문, while 문 등의 블록은 한 줄 길이 여야 함을 의미합니다. 아마도 그 라인은 함수 호출이어야합니다. 이렇게하면 둘러싼 함수가 작게 유지 될뿐만 아니라 블록 내에서 호출 된 함수의 이름이 잘 설명 될 수 있으므로 다큐멘터리 값도 추가됩니다. …
33 clean-code  solid 

9
개별 속성이 아닌 전체 클래스를 매개 변수로 사용하도록 클래스 디자인
예를 들어, 광범위하게 공유되는 클래스가있는 응용 프로그램이 있다고 가정 해 보겠습니다 User. 이 클래스는 사용자, ID, 이름, 각 모듈에 대한 액세스 수준, 시간대 등에 대한 모든 정보를 제공합니다. 사용자 데이터는 분명히 시스템 전체에서 광범위하게 참조되지만, 어떤 이유로 든이 사용자 개체를이 클래스에 의존하는 클래스로 전달하는 대신 개별 속성 만 전달하도록 시스템이 …
30 java  c#  design  solid 


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

3
정적 메소드가있는 정적 클래스는 SOLID로 간주됩니까?
SOLID 에는 "프로그램의 개체를 해당 프로그램의 정확성을 변경하지 않고 하위 유형의 인스턴스로 대체 할 수 있어야합니다"라는 개념을 가진 Liskov 대체 원칙 이 포함되어 있습니다. 정적 메소드가있는 정적 클래스 (클래스와 약간 비슷 함 Math)에는 인스턴스가 전혀 없으므로 정적 메소드가있는 정적 클래스가 있으면 시스템이 SOLID로 간주됩니까?

12
SOLID vs. 조기 추상화 방지
나는 모듈성이 중요하고 목표가 명확하게 유용한 상황에서 SOLID 가 무엇 을 달성하고 정기적으로 사용 하는지 이해 합니다. 그러나 두 가지로 인해 코드베이스에서 일관되게 적용 할 수 없습니다. 조기 추상화를 피하고 싶습니다. 내 경험상 구체적인 유스 케이스 (현재 또는 가까운 미래 에 존재하지 않는)없이 추상화 라인을 그리는 것은 잘못된 위치에 그려집니다. …

8
일부 또는 모든 SOLID 원칙이 코드를 깨끗하게 해석하기 어려운 OOP의 특징이 있습니까?
저는 최근 비디오 게임 개발에서 OOP에 대해 제 친구와 토론했습니다. 친구의 놀랍게도 많은 작은 클래스와 여러 추상화 계층이 포함 된 내 게임 중 하나의 아키텍처를 설명하고있었습니다. 나는 이것이 모든 일에 단일 책임을 부여하고 구성 요소 간의 결합을 완화하는 데 중점을 둔 결과라고 주장했다. 그의 우려는 많은 클래스가 유지 보수의 악몽으로 …

11
은행 세계에서 코드 설계 노력 또는 게으름을 선택하십시오
저는 훌륭한 투자 은행에서 2 년간 일했습니다. 적절한 디자인 패턴, SOLID 원리, 데 미터 법칙을 존중하고 모든 종류의 중복 코드를 피하면서 가장 최적화 된 코드를 만들고자하는 기술 프로젝트를 만들었습니다. 프로덕션에서 제공 => 버그가 0이면 모든 것이 예상대로 발생했습니다. 그러나 대다수의 개발자가 모든 코드가 이해하기에 너무 복잡하다는 것을 정확하게하기 위해 나에게 …

5
폴 백이있는 특수 사례가 Liskov 대체 원칙을 위반합니까?
FooInterface다음과 같은 서명을 가진 인터페이스 가 있다고 가정 해 봅시다 . interface FooInterface { public function doSomething(SomethingInterface something); } 그리고 ConcreteFoo그 인터페이스를 구현 하는 구체적인 클래스 : class ConcreteFoo implements FooInterface { public function doSomething(SomethingInterface something) { } } ConcreteFoo::doSomething()특별한 유형의 SomethingInterface객체 가 전달되면 고유 한 작업을 수행 하고 싶습니다 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.