«design-patterns» 태그된 질문

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

2
웹 개발을위한 대안 패턴? (MVC 외) [닫힘]
폐쇄되었습니다 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 최근에 MVC에 관한 블로그 게시물과 웹에 맞지 않는 방법을 읽었습니다 . RMR 아키텍처 와 같은 대체 패턴에 …

16
가장 자주 사용되는 디자인 패턴은 무엇입니까? [닫은]
현재로서는이 질문이 Q & A 형식에 적합하지 않습니다. 답변, 사실, 참고 자료 또는 전문 지식을 통해 답변이 뒷받침 될 것으로 예상되지만이 질문은 토론, 논쟁, 여론 조사 또는 광범위한 토론을 요구할 것입니다. 이 질문을 개선하고 다시 열 수 있다고 생각 되면 도움말 센터 를 방문하여 안내를 받으십시오 . 휴일 팔년 전에 …

2
빌더가 자체 클래스 파일 대신 내부 클래스 여야하는 이유는 무엇입니까?
많은 Builder Pattern예제 Builder가 객체의 내부 클래스를 만듭니다. 이것은 Builder빌드 내용을 나타 내기 때문에 의미가 있습니다. 그러나 정적으로 유형이 지정된 언어에서는 Builder빌드 내용을 알고 있습니다. (가) 다른 말로하면 Builder내부 클래스, 당신은 해야 (가) 어떤 클래스 알 Builder의 내부를 보지 않고 빌드 Builder. 또한 빌더를 내부 클래스로 사용하면 외부 클래스에서 참조 …

5
생성자에서 setter를 사용하는 것이 일반적인 패턴이 아닌 이유는 무엇입니까?
접근 자와 수정 자 (일명 setter 및 getter)는 세 가지 주요 이유로 유용합니다. 변수에 대한 액세스를 제한합니다. 예를 들어 변수에 액세스 할 수는 있지만 수정할 수는 없습니다. 그들은 매개 변수의 유효성을 검사합니다. 부작용이 발생할 수 있습니다. 웹의 대학교, 온라인 강좌, 튜토리얼, 블로그 기사 및 코드 예제는 모두 접근 자와 수정 …

6
클래스가 자체 공개 메소드를 사용하는 것이 괜찮습니까?
배경 현재 장치에서 전송 및 수신 하는 객체 가있는 상황이 있습니다 . 이 메시지에는 다음과 같은 몇 가지 구성이 있습니다. public void ReverseData() public void ScheduleTransmission() ScheduleTransmission방법은 필요 통화에 ReverseData가 호출 될 때마다 방법을. 그러나 응용 프로그램에서 객체가 인스턴스화되는 곳에서 ReverseData외부 로 호출 해야 하며 네임 스페이스 외부를 완전히 추가 …

4
생성자의 합법적 인 "실제 작업"?
디자인 작업을하고 있지만 계속 장애물을 치고 있습니다. XML 스키마를 구문 분석하여 생성 한 복잡한 노드 트리의 소유자 인 DOM (특정 클래스) 인 특정 클래스 (ModelDef)가 있습니다. 좋은 설계 원칙 (SOLID)을 따르고 결과 시스템을 쉽게 테스트 할 수 있는지 확인하고 싶습니다. DI를 사용하여 종속성을 ModelDef의 생성자로 전달하려는 모든 의도가 있습니다 (필요한 …

3
서비스 계층이 모든 DAO 예외를 잡아서 서비스 예외로 포장해야합니까?
dao, 서비스 및 컨트롤러의 세 가지 계층 Spring 웹 앱이 있습니다. 컨트롤러는 dao를 직접 호출하지 않으며 서비스 계층을 통해 수행합니다. 현재 대부분의 경우 처리되지 않은 dao 예외 (런타임)가 있으면 최종 사용자에게 오류 메시지를 표시하는 JSP에 의해 포착됩니다. 서비스 계층이 모든 DAO 예외를 잡아서 서비스 예외로 포장해야합니까? try { daoInstance.someDaoMethod(); } …

2
데이터 검증을위한 디자인 패턴
이 문제에 가장 적합한 디자인 패턴은 무엇입니까? 개체 A가 있습니다. 사용자 요청에 따라 데이터베이스에서 개체 A를 등록하거나 삭제할 수 있습니다. 객체의 등록 또는 삭제 전에 데이터 유효성 검사가 수행됩니다. 객체를 등록하기 전에 확인해야 할 규칙 세트와 삭제를위한 다른 규칙 세트가 있습니다. 이러한 규칙 중 일부는 두 작업 모두에 공통입니다. 지금까지 …

5
성공 : / 실패 : 블록 vs 완료 : 블록
Objective-C에서 블록에 대한 두 가지 공통 패턴이 있습니다. 하나는 성공 : 실패 / 블록 : 한 쌍이고 다른 하나는 단일 완료 : 블록입니다. 예를 들어, 객체를 비동기 적으로 반환하는 작업이 있고 해당 작업이 실패 할 수 있다고 가정하겠습니다. 첫 번째 패턴은 -taskWithSuccess:(void (^)(id object))success failure:(void (^)(NSError *error))failure입니다. 두 번째 패턴은 …

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

8
'using'키워드를 사용할 때 DRY 원칙을 구현하는 방법은 무엇입니까?
다음 방법을 고려하십시오. public List<Employee> GetAllEmployees() { using (Entities entities = new Entities()) { return entities.Employees.ToList(); } } public List<Job> GetAllJobs() { using (Entities entities = new Entities()) { return entities.Jobs.ToList(); } } public List<Task> GetAllTasksOfTheJob(Job job) { using (Entities entities = new Entities()) { return entities.Tasks.Where(t => t.JobId == …

5
Java / Java EE에서와 유사한 복잡성을 관리하면서 다른 인기있는 언어가 팩토리 패턴을 사용하지 않아도되는 방법은 무엇입니까?
팩토리 패턴 (또는 적어도의 사용 FactoryFactory..)은 here 과 같은 많은 농담의 엉덩이입니다 . RequestProcessorFactoryFactory.RequestProcessorFactory 와 같이 상세하고 "창의적인"이름을 갖는 것 외에도 Java / C ++로 프로그래밍해야하고 Abstract_factory_pattern 의 사용 사례가 있다면 팩토리 패턴에 근본적으로 잘못된 것이 있습니까? 다른 유명한 언어 (예 : Ruby 또는 Scala )가 유사한 복잡성을 관리하면서 언어 …

8
팀에서 빌더 패턴 사용을 어떻게 홍보 할 수 있습니까?
우리의 코드베이스는 나 자신과 마찬가지로 오래되고 새로운 프로그래머 이며 균일 성을 위해 수행 된 방식으로 신속하게 학습합니다 . 우리는 어딘가에서 시작해야한다고 생각하면서 다음과 같이 데이터 홀더 클래스를 리팩터링했습니다. 세터 메소드를 제거하고 모든 필드를 작성했습니다 final( final공식적으로 "양호합니다"). 세터는 생성자에서만 사용되었으므로 부작용이 없었습니다. 빌더 클래스 소개 생성자 (처음에 리팩토링을 촉구 한 …

6
사용 사례가없는 느슨한 커플 링은 안티 패턴입니까?
느슨한 커플 링은 일부 개발자에게 잘 설계된 소프트웨어의 성배입니다. 가까운 미래에 발생할 수있는 변경에 직면하여 코드를 더 유연하게 만들거나 코드 복제를 피할 때 확실히 좋습니다. 반면에, 구성 요소를 느슨하게 결합하려는 노력은 프로그램에서 간접적 인 양을 증가 시켜서 복잡성을 증가 시키며, 종종 이해하기 어렵고 종종 효율성을 떨어 뜨립니다. 느슨한 커플 링 …

4
기능성 프로그래밍이 의존성 주입 패턴에 대한 대안입니까?
최근 에 C #에서 Functional Programming 이라는 제목의 책을 ​​읽었으며, 함수 프로그래밍 의 변경 불가능하고 상태 비 저장 특성은 종속성 주입 패턴과 유사한 결과를 달성하며 특히 단위 테스트와 관련하여 더 나은 접근 방식 일 수 있습니다. 두 가지 접근 방식을 모두 경험 한 사람이 자신의 생각과 경험을 공유하여 주된 질문에 …

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