«design-patterns» 태그된 질문

디자인 패턴은 소프트웨어 디자인에서 일반적으로 발생하는 문제에 대한 일반적인 재사용 가능한 솔루션입니다.

6
다음 코드 스 니펫에서 너무 많은 if / else-if를 피하는 더 좋은 방법은 무엇입니까?
"액션"값을 기반으로 작업을 수행하는 서블릿을 입력으로 전달하려고합니다. 다음은 샘플입니다 public class SampleClass extends HttpServlet { public static void action1() throws Exception{ //Do some actions } public static void action2() throws Exception{ //Do some actions } //And goes on till action9 public void doPost(HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException { String …

5
데 메터의 법에 따르면, 클래스는 멤버 중 하나를 반환 할 수 있습니까?
데메테르의 법칙에 관한 세 가지 질문이 있습니다. 팩토리 및 빌더 클래스와 같이 객체를 반환하도록 특별히 지정된 클래스 외에도 클래스의 속성 중 하나에 의해 유지되는 객체 또는 데 메타 법칙 을 위반하는 객체를 반환하는 방법은 괜찮습니다 (1) ? 그리고 그것이 데 미터 법칙을 위반한다면, 반환 된 객체가 데이터를 나타내는 불변의 객체인지 …

2
주사 불가능한 코드를 테스트하는 방법은 무엇입니까?
그래서 나는 시스템 전체에서 다음과 같은 코드를 사용하고 있습니다. 우리는 현재 단위 테스트를 소급하여 작성하고 있지만 (내 주장보다 결코 늦지 않았습니다), 이것이 어떻게 테스트 될 수 있는지 보지 못합니까? public function validate($value, Constraint $constraint) { $searchEntity = EmailAlertToSearchAdapter::adapt($value); $queryBuilder = SearcherFactory::getSearchDirector($searchEntity->getKeywords()); $adapter = new SearchEntityToQueryAdapter($queryBuilder, $searchEntity); $query = $adapter->setupBuilder()->build(); $totalCount …

1
데이터베이스의 도메인 모델이 지속 가능한 솔루션 일 수 있습니까?
방금 Microsoft 기술 기반의 중소 규모 회사의 데이터베이스 개발자로 새로운 직책을 시작했습니다. 모범 사례, 디자인 패턴, 테스트 및 프로젝트 관리와 관련하여 학교에서 배운 것과 얼마나 많은 관행이 벗어 났는지 일찍 알았습니다. 가장 큰 문제는 주 데이터베이스 개발자 (이하 "John")가 모델 스키마를 데이터베이스에 유지하는 방법입니다. 우리는 3 개의 "매직"테이블을 가짐으로써이를 수행합니다. …

3
특정 조건에서 프로그래머의 관심을 끄는 방법은 무엇입니까?
예를 들어 보자. exportDB 스키마에 크게 의존 하는 메서드가 있다고 가정 해 봅시다 . “무겁다”는 말은 특정 테이블에 새 열을 추가하는 경우가 많고 (매우 자주) 해당 export메소드가 변경됨 을 나타냅니다 (보통 내보내기 데이터에도 새 필드를 추가해야 함). 프로그래머는 종종이 export방법 을 변경 해야한다는 것을 확실하지 않기 때문에 방법 을 변경 …

7
컬렉션에 아이템을 추가하는보다 "자연적인"방법을위한 패턴이 있습니까? [닫은]
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 컬렉션에 무언가를 추가하는 가장 일반적인 방법은 컬렉션이 Add제공하는 일종의 방법 을 사용하는 것입니다 . class Item {} var …

6
의존성 주입 프레임 워크에 대한 논쟁 중 하나에 의문을 제기하는 이유 : 왜 객체 그래프를 만드는 것이 어려운가?
Google Guice와 같은 종속성 주입 프레임 워크는 사용법에 대한 다음 동기 ( source )를 제공합니다. 객체를 구성하려면 먼저 해당 객체의 종속성을 작성하십시오. 그러나 각 종속성을 빌드하려면 해당 종속성 등이 필요합니다. 따라서 객체를 만들 때 실제로 객체 그래프를 만들어야합니다. 손으로 객체 그래프를 작성하는 것은 노동 집약적이며 (...) 테스트를 어렵게 만듭니다. 그러나 …

2
"계산 된"값을 속성 또는 메서드로 노출해야합니까?
웹 콘텐츠 관리 시스템의 콘텐츠 유형을 나타내는 C # 클래스가 있습니다. 웹 컨텐츠 편집기가 오브젝트 표시 방법에 대한 HTML 템플리트를 입력 할 수있는 필드가 있습니다. 기본적으로 객체 속성 값을 HTML 문자열로 대체하기 위해 핸들 바 구문을 사용합니다. <h1>{{Title}}</h1><p>{{Message}}</p> 클래스 디자인 관점에서 형식화 된 HTML 문자열 (대체 포함)을 속성 또는 메서드 …

2
Command 자체에서 메소드를 처리하는 대신 클래스 CommandHandler를 Handle ()로 분리하는 이유
다음 과 같이 S # arp 아키텍처를 사용하여 CQRS 패턴의 일부를 구현 했습니다. public class MyCommand { public CustomerId { get; set; } // some other fields } public class MyCommandHandler<MyCommand> : ICommandHandler<MyCommand, CommandResult> { Handle(MyCommand command) { // some code for saving Customer entity return CommandResult.Success; } } 왜 …

4
레일 : 데메테르 혼란의 법칙
저는 Rails AntiPatterns라는 책을 읽고 있습니다. 그들은 Demeter of Demeter를 위반하지 않기 위해 위임을 사용하는 것에 대해 이야기합니다. 주요 예는 다음과 같습니다. 그들은 컨트롤러에서 이와 같은 것을 호출하는 것이 좋지 않다고 생각합니다 (그리고 나는 동의합니다) @street = @invoice.customer.address.street 제안 된 해결책은 다음을 수행하는 것입니다. class Customer has_one :address belongs_to :invoice …

3
Dependency Inversion Principle : 다른 사람에게“높은 수준의 정책”과“낮은 수준의 세부 사항”을 정의하는 방법은 무엇입니까?
나는 (주로 후배) 동료들에게 의존성 역전 원리를 설명하려고합니다. 소프트웨어에서 어떤 정책이 "고수준 정책"이고 어떤 정책이 "저수준 세부 사항"인지 어떻게 정의 할 수 있습니까? 예를 들어 소프트웨어가 여러 비즈니스 응용 프로그램의 워크 플로를 자동화하는 경우 워크 플로 자동화가 고급 정책이고 비즈니스 응용 프로그램이 세부 정보라고 말하는 이유는 무엇입니까?

3
이야기를하는 것이 좋은 아이디어를주기 위해 단위 테스트를 사용하고 있습니까?
그래서 얼마 전에 작성한 인증 모듈이 있습니다. 이제 나는 길의 오류를보고 그것을 위해 단위 테스트를 작성하고 있습니다. 단위 테스트를 작성하는 동안 좋은 이름과 테스트하기 좋은 영역을 찾기가 어렵습니다. 예를 들어 다음과 같은 것이 있습니다 Login_should_redirect_when_not_logged_in 필요 Login_should_pass_through_when_logged_in 필요 Login_should_work_when_given_proper_credentials 개인적으로, 나는 그것이 "적절한"것처럼 보이지만 조금 추악하다고 생각합니다. 또한 스캔을 통해 …

2
대규모 기능적 프로그래밍 응용 프로그램을 만드는 데 일반적으로 사용되는 특정 워크 플로 또는 디자인 패턴이 있습니까? [닫은]
폐쇄되었습니다 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 나는 Clojure를 잠시 동안 탐색 해 왔지만, 사소한 프로젝트에서는 사용하지 않았지만. 기본적으로 구문과 일부 관용구에 익숙해졌습니다. Clojure가 …

4
디자인 패턴이 올바르게 구현되었는지 확인하는 방법은 무엇입니까?
문서화 된 디자인 패턴을 사용하지 않은 모든 이전 응용 프로그램을 성공적으로 확장 할 수 있습니다. 그것이 무엇인지 모르는 것입니다. 대체로 간단한 OOP 개념 만 사용해야한다는 느낌이 들었습니다. 디자인 패턴 개념은 복잡하고 이해하기 어렵습니다. 구현할 때 구현이 올바른지 여부와 응용 프로그램이 실제로 느슨한 결합을 가지고 있는지 확인하는 방법은 무엇입니까?

3
시스템 오류 노출 / 허용 / 복구에 대한 설계 패턴 / 접근법 권장, 예외 처리 (예 : Java, C ++, Perl, PHP)
시스템 오류 노출 / 허용 / 복구, 예외 처리 (Java, C ++, Perl, PHP)에 디자인 패턴 / 접근법을 추천 할 수 있습니까? 일부 오류가보고되어야합니다. 일부 오류는 내부적으로 처리 할 수 ​​있습니다 (재시도 또는 중요하지 않음 (무시 될 수 있음)). 코드를 잡기 위해 어떻게 코드를 구성합니까? 그러나 모든 오류를 기록해야합니다. 어떤 …

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