«solid» 태그된 질문

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

16
단일 책임 원칙을 사용할 때 "책임"은 무엇입니까?
"단일 책임 원칙"이 "한 가지 일만"을 의미하는 것은 아님이 분명합니다. 그것이 방법에 대한 것입니다. public Interface CustomerCRUD { public void Create(Customer customer); public Customer Read(int CustomerID); public void Update(Customer customer); public void Delete(int CustomerID); } 밥 마틴은 "수업은 변화해야 할 단 하나의 이유가 있어야한다"고 말했다. 그러나 SOLID를 처음 사용하는 프로그래머라면 …

6
SOLID 원리와 코드 구조
최근 취업 면접에서 나는 다양한 원칙의 기본 의미를 제공하는 것 외에는 SOLID 에 관한 질문에 대답 할 수 없었습니다 . 정말 버그가 있습니다. 나는 이틀간의 발굴을 해왔지만 아직 만족스러운 요약을 얻지 못했습니다. 인터뷰 질문은 다음과 같습니다. SOLID 원칙을 엄격히 준수한다고했던 .Net 프로젝트를 살펴보면 프로젝트 및 코드 구조와 관련하여 무엇을 기대할 …
150 c#  .net  solid 

10
이것이 Liskov 대체 원칙을 위반합니까?
Task 엔터티 목록과 ProjectTask하위 유형 이 있다고 가정 해보십시오 . ProjectTasks상태가 시작됨 인 경우 닫을 수없는 경우 를 제외하고 작업은 언제든지 닫을 수 있습니다 . UI는 시작을 닫는 옵션을 ProjectTask사용할 수 없도록해야 하지만 도메인에는 다음과 같은 보호 조치가 있습니다. public class Task { public Status Status { get; set; } …

12
SetWidth 및 SetHeight 메서드를 재정의하면 Rectangle에서 Square 상속이 문제가되는 이유는 무엇입니까?
사각형이 사각형 유형 인 경우 사각형에서 사각형을 상속 할 수없는 이유는 무엇입니까? 아니면 왜 나쁜 디자인입니까? 사람들이 말하는 것을 들었습니다. 사각형을 사각형에서 파생시킨 경우 사각형을 기대하는 모든 위치에서 사각형을 사용할 수 있어야합니다 여기서 무슨 문제가 있습니까? 사각형이 필요한 곳이라면 어디에서 Square를 사용할 수 있습니까? Square 객체를 생성하고 Square에 대한 SetWidth …

4
SOLID를 따르는 것이 기술 스택 위에 프레임 워크를 작성하게합니까?
저는 SOLID를 좋아하며 개발할 때 최선을 다하여 사용하고 적용합니다. 그러나 나는 SOLID 접근 방식이 코드를 '프레임 워크'코드로 바꾸는 것처럼 도울 수는 없지만 느낄 수는 없습니다. 즉, 다른 개발자가 사용할 프레임 워크 나 라이브러리를 만드는 경우 설계 한 코드입니다. 나는 일반적으로 요구 사항과 KISS (일반 프로그래밍)를 통해 요구되는 것을 거의 또는 …
70 frameworks  solid 

8
단일 책임 원칙을 어 기지 않고 클래스에 여러 개의 메소드를 가질 수있는 방법
단일 책임 원칙은 Wikipedia에서 다음 과 같이 정의 됩니다. 단일 책임 원칙은 모든 모듈, 클래스 또는 기능이 소프트웨어가 제공하는 기능의 단일 부분에 대해 책임을 가져야하며 책임은 클래스에 의해 완전히 캡슐화되어야한다는 컴퓨터 프로그래밍 원칙입니다. 수업이 하나의 책임만을 가져야한다면, 어떻게 하나 이상의 방법을 가질 수 있습니까? 각 방법이 서로 다른 책임을 가지지 …

10
'최종'키워드가 유용한 이유는 무엇입니까?
Java는 오랫동안 클래스를 파생 할 수없는 클래스를 선언 할 수있는 힘을 가지고 있으며 C ++에도 클래스가 있습니다. 그러나 SOLID의 열기 / 닫기 원칙에 비추어 볼 때 이것이 왜 유용한가? 나에게 final키워드는 똑같이 들리지만 friend합법적이지만 키워드 를 사용하는 경우 디자인이 잘못되었을 수 있습니다. 파생 할 수없는 클래스가 훌륭한 아키텍처 또는 디자인 …
54 java  c++  solid  final 

5
테스트 가능한 코드를 홍보하는 디자인 원칙은 무엇입니까? (테스트 가능한 코드 디자인과 테스트를 통한 디자인 설계)
내가 작업하는 대부분의 프로젝트는 나중에 개발 및 단위 테스트를 고려하여 나중에 단위 테스트를 작성하는 것을 악몽으로 만듭니다. 저의 목표는 높은 수준과 낮은 수준의 디자인 단계 자체에서 테스트를 염두에 두는 것입니다. 테스트 가능한 코드를 홍보하는 잘 정의 된 디자인 원칙이 있는지 알고 싶습니다. 최근에 이해하게 된 그러한 원칙 중 하나는 종속성 …

5
IOC 컨테이너, OOP 원칙 위반
IOC 컨테이너의 목적은 무엇입니까? 그 이유를 다음과 같이 단순화 할 수 있습니다. OOP / SOLID 개발 원칙을 사용하면 Dependency Injection이 복잡해집니다. 여러 레벨에 대한 종속성을 관리하고 구성을 통해 종속성을 재귀 적으로 전달하는 최상위 진입 점이 있거나 필요에 따라 종속성을 빌드하는 팩토리 / 빌더 패턴 및 인터페이스에 다소 중복 된 코드가 …

7
SOLID로 전환 한 후 엄청나게 증가한 클래스 수 관리 및 구성?
지난 몇 년 동안, 우리는 한 번에 몇 단계 씩 단계적으로 개선 된 코드로 점진적으로 전환 해 왔습니다. 우리는 마침내 적어도 SOLID와 비슷한 것으로 전환하기 시작했지만 아직 멀지 않았습니다. 전환 이후 개발자의 가장 큰 불만 중 하나는 이전에 모든 작업에서 5-10 개의 파일을 다루는 개발자 만 필요했던 수십 및 수십 …

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


7
언제 의존성 역전 원칙을 적용하지 않습니까?
현재 SOLID를 알아 내려고 노력 중입니다. 따라서 Dependency Inversion Principle은 두 클래스가 직접이 아닌 인터페이스를 통해 통신해야 함을 의미합니다. 예 : class A메소드가있는 경우 유형의 객체에 대한 포인터를 예상하면 class B이 메소드는 실제로 유형의 객체를 기대해야합니다 abstract base class of B. 이것은 열기 / 닫기에도 도움이됩니다. 내가 올바르게 이해했다면, 내 …

7
SOLID 원칙과 YAGNI
SOLID 원칙은 언제 YAGNI가됩니까? 프로그래머로서 우리는 복잡성, 유지 보수성, 구축 시간 등과의 상충 관계를 항상 유지합니다. 무엇보다도 선택을위한 가장 현명한 두 가지 지침은 SOLID 원칙과 YAGNI입니다. 필요하지 않으면; 빌드하지 말고 깨끗하게 유지하십시오. 예를 들어, SOLID 에서 dimecast 시리즈를 볼 때 상당히 간단한 프로그램으로 시작하고 꽤 복잡한 프로그램으로 끝납니다 (결국 예 …

3
SOLID 원리 프로그래밍
시간이 지남에 따라 SOLID의 두 부분 인 “S”와“O”를 이해할 수있었습니다 . “O”– 상속 및 전략 패턴을 통해 공개 폐쇄 원칙을 배웠습니다. “S”– ORM을 배우면서 단일 책임 원칙을 배웠습니다 (지속성 논리는 도메인 개체에서 제외됨). 비슷한 방식으로 SOLID의 다른 부분 ( "L", "I"및 "D")을 배우는 가장 좋은 영역 / 작업은 무엇입니까? 참고 …

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