«solid» 태그된 질문

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

6
관계를 반대로해서 타원 문제를 해결할 수 있습니까?
갖는 Circle확장Ellipse 휴식에게 Liskov Substition 원리 즉, 당신은 X와 Y는 독립적으로 타원을 그리는 설정할 수 있지만 X는 항상 원 대한 Y와 동일해야합니다 : 그것은 사후 조건을 수정하기 때문에. 그러나 Circle이 타원의 하위 유형이 됨으로써 발생하는 문제가 아닌가? 우리는 관계를 되돌릴 수 없었습니까? 따라서 Circle은 수퍼 타입 setRadius입니다. 단일 방법이 있습니다. …

5
품질을 향상시키기 위해 코드를 미니 리팩터링하는 것이 유용한가요? 아니면 큰 이점없이 "이동하는 코드"입니까?
예 한 곳에서 "모든 것"을 수행하는 모 놀리 식 코드를 발견했습니다. 데이터베이스에서 데이터를로드하고 HTML 마크 업을 표시하며 라우터 / 컨트롤러 / 액션으로 작동합니다. SRP 이동 데이터베이스 코드를 자체 파일에 적용하기 시작하여 더 나은 이름 지정 기능을 제공했지만 모두 좋아 보였지만 왜 내가 이것을하는지에 대한 의문이 생겼습니다. 왜 리팩터링해야합니까? 목적은 무엇입니까? …

1
OCP (Open Closed Principle) 및 DIP (Dependency Inversion Principle)
OCP ( Open Closed Principle )와 DIP ( Dependency Inversion Princible ) 의 차이점을 이해하려고했습니다 . 지금까지 인터넷에서 수행 한 연구를 바탕으로 'DIP는 OCP를 달성 할 수있는 하나의 옵션'이라는 결론에 도달했습니다. 나는 이것에 맞습니까? DIP를 따르지 않지만 OCP를 따르는 예를 들어 주시겠습니까?

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

4
C #의 인터페이스에서 전제 조건 (LSP)을 지정하는 방법은 무엇입니까?
다음과 같은 인터페이스가 있다고 가정 해 봅시다. interface IDatabase { string ConnectionString{get;set;} void ExecuteNoQuery(string sql); void ExecuteNoQuery(string[] sql); //Various other methods all requiring ConnectionString to be set } 전제 조건은 메소드를 실행하기 전에 ConnectionString을 설정 / 초기화해야한다는 것입니다. 이 전제 조건은 IDatabase가 추상 클래스이거나 구체적인 클래스 인 경우 생성자를 통해 …

9
SOLID와 정적 방법
내가 자주 겪는 문제는 다음과 같습니다. Product 클래스가있는 웹 상점 프로젝트가 있습니다. 사용자가 제품에 리뷰를 게시 할 수있는 기능을 추가하고 싶습니다. 그래서 제품을 참조하는 Review 클래스가 있습니다. 이제 제품에 대한 모든 리뷰를 나열하는 방법이 필요합니다. 두 가지 가능성이 있습니다. (ㅏ) public class Product { ... public Collection<Review> getReviews() {...} } …

4
역동적이고 약한 유형의 언어에서 디자인 패턴과 OOP 관행에 대한 생각은 어떻게 변합니까?
이 라인들에 이미 상당히 유용한 질문 ( " 비 OOP 디자인 패턴? ")이 있지만, 역동적이고 약한 유형의 언어로 시작하는 사람에 대한 과도기적 인 관점에 대해 더 궁금합니다. 즉, 몇 년 동안 C ++, C # 또는 Java로 프로그래밍을 해왔으며 GoF 디자인 패턴, Fowler 's Enterprise Application Architecture 의 패턴 , …

3
인터페이스 분리 원리가 구체적인 방법에 적용됩니까?
인터페이스 분리 원칙에 따르면 클라이언트가 사용하지 않는 메소드에 의존해서는 안되므로 클라이언트는 인터페이스 메소드에 대해 빈 메소드를 구현해서는 안되며, 그렇지 않으면이 인터페이스 메소드를 다른 인터페이스에 배치해야합니다. 그러나 구체적인 방법은 어떻습니까? 모든 고객이 사용하지 않는 방법을 분리해야합니까? 다음 클래스를 고려하십시오. public class Car{ .... public boolean isQualityPass(){ ... } public int getTax(){ …

3
SOLID 원칙을 사용할 때 개발자의 검색 가능성에 문제가 있습니까?
다른 모든 개발자가 기본 CRUD 앱을 사용하는 데 익숙하거나 예쁘고 기능적인 인터페이스를 만드는 데만 집중하는 LOB (기간 업무) 앱을 운영하고 있으며 다음과 같은 결과를 얻고 있습니다. "우리가 사용하는 방식으로 직원은 직원과 함께 할 수있는 모든 것을 가질 수 있습니다." 그리고 사실이었다. 한 "클래스"에는 수천 줄의 코드가 있었고 직원과 함께 할 …
10 solid  crud 

2
SRP를 따를 때 엔터티의 유효성 검사 및 저장을 어떻게 처리해야합니까?
내가 읽어 봤는데 클린 코드 최근 SOLID에 대한 다양한 온라인 기사를, 나는 아무것도 몰라처럼 더 나는 그것에 대해 읽고, 더 느낌. 나는이의 내가 ASP.NET MVC 3하자 말을 사용하여 웹 응용 프로그램을 짓고 있어요 가정 해 봅시다 UsersController과 Create같은 조치 : public class UsersController : Controller { public ActionResult Create(CreateUserViewModel viewModel) …

5
실제 값을 나타내는 상수를 업데이트하는 것이 공개 폐쇄 원칙을 위반합니까?
근로자의 연간 순소득을 계산하는 수업이 있습니다. 세금 비율을 나타내는 상수가 있습니다. 그러나 어느 날 세율이 변경되었으므로 코드를 수정해야합니다. 이 상수를 수정하는 행위 는 클래스가 수정을 위해 폐쇄되어야한다고 가정하기 때문에 공개 폐쇄 원칙 위반을 나타 냅 니까?

7
마법사와 전사의 규칙 우회
에서 블로그 게시물이 시리즈 , 에릭 Lippert의이 마법사와 예제로 전사를 사용하여 객체 지향 설계에서 문제를 설명 : abstract class Weapon { } sealed class Staff : Weapon { } sealed class Sword : Weapon { } abstract class Player { public Weapon Weapon { get; set; } } sealed class …

2
인터페이스 분리 원리 : 인터페이스가 상당히 겹치는 경우 어떻게해야합니까?
에서 피어슨 새로운 국제 버전 : 애자일 소프트웨어 개발, 원칙, 패턴, 및 사례 : 때로는 다른 클라이언트 그룹이 호출 한 메소드가 겹칠 수 있습니다. 오버랩이 작 으면 그룹의 인터페이스가 분리되어 있어야합니다. 공통 기능은 모든 겹치는 인터페이스에 선언해야합니다. 서버 클래스는 각 인터페이스에서 공통 기능을 상속하지만 한 번만 구현합니다. Bob 아저씨, 약간의 …

2
"필요한 것만 요청"인터페이스 원리가 있습니까?
나는 기본적으로 "필요한 것만 요구하라"는 인터페이스를 디자인하고 소비하는 원칙을 사용하여 자랐습니다. 예를 들어 삭제할 수있는 유형이 많으면 Deletable인터페이스를 만들 것입니다 . interface Deletable { void delete(); } 그런 다음 일반 클래스를 작성할 수 있습니다. class Deleter<T extends Deletable> { void delete(T t) { t.delete(); } } 코드의 다른 곳에서는 항상 …

6
최종 현장 인터뷰에서“Hire”와 정직한“거의”의 차이점은 무엇입니까? [닫은]
닫은. 이 질문은 주제에 맞지 않습니다 . 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? Software Engineering Stack Exchange에 대한 주제가 되도록 질문을 업데이트하십시오 . 휴일 육년 전 . 그래서 최근에 Google 및 Amazon과의 현장 인터뷰를 진행 한 결과 예의 바른 거절 편지를 받았지만 그들이 찾고있는 기술에는 적합하지 않다는 것을 알 …
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.