«design-patterns» 태그된 질문

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

3
MVVM 애플리케이션에서 내비게이션을 누가 제어해야합니까?
예제 # 1 : MVVM 애플리케이션에 뷰가 표시되고 (토론 목적으로 Silverlight를 사용하겠습니다) 새 페이지로 이동해야하는 버튼을 클릭합니다. 예 # 2 : 동일한보기에는 클릭 할 때 하위 창 (대화 상자)에서 세부 사항보기를 열어야하는 다른 단추가 있습니다. 우리는 ViewModel에 의해 노출 된 Command 객체가 사용자의 클릭에 반응하는 메소드를 사용하여 버튼에 바인딩 될 …

8
열거 형 목록을 사용하는 것이 좋습니다?
현재 사용자가있는 시스템에서 작업하고 있으며 각 사용자에게는 하나 이상의 역할이 있습니다. User에서 Enum 값 목록을 사용하는 것이 좋습니다? 나는 더 나은 것을 생각할 수 없지만 이것은 기분이 좋지 않습니다. enum Role{ Admin = 1, User = 2, } class User{ ... List<Role> Roles {get;set;} }

5
왜 n- 계층 개발의 코드 기반이 같은 양의 JavaScript 코드를 사용합니까?
나는 오랫동안 웹 프로그래밍을 해왔고 어딘가에서 우리가 오늘하고있는 일을하는 이유 (또는 어떻게 이런 일을했는지)를 잃어 버렸는가? 나는 기본적인 ASP 웹 개발로 시작했고, 초기에는 디스플레이와 비즈니스 로직이 페이지에서 혼합되었습니다. 클라이언트 측 개발은 매우 다양했으며 (VBScript, 다양한 종류의 JavaScript) 서버 측 유효성 검사에 대해 많은 경고가있었습니다 (따라서 클라이언트 측 로직에서 멀리 떨어져 …

9
끊임없이 변화하는 프로젝트에서 디자인 패턴을 사용하지 않아야합니까?
저의 친구는 모든 개발자가 싫어하는 프로젝트에서 소규모 회사를 위해 일하고 있습니다. 가능한 빨리 릴리스하도록 압력을 가하고 기술 부채에 관심이있는 유일한 사람이고 고객에게는 기술적 배경이 없습니다. 그는 저와 같은 프로젝트에서 디자인 패턴의 적절성에 대해 생각하게 만드는 이야기를 들려주었습니다. 여기 이야기가 있습니다. 웹 사이트의 다른 곳에 제품을 표시해야했습니다. 예를 들어, 컨텐츠 관리자는 …

3
가장 놀라운 원리는 무엇입니까?
프로그래밍에서 Least Astonishment의 원리는 무엇입니까? 이 개념은 좋은 API 디자인과 어떤 관련이 있습니까? 이것이 객체 지향 프로그래밍에만 적용 가능한가? 아니면 다른 프로그래밍 기술에도 스며 들어 있는가? 이것은 "방법에서 하나의 일을하고 잘하는 것"의 원칙과 관련이 있습니까?

11
잘 설계된 / 고품질 오픈 소스 소프트웨어 [닫기]
소프트웨어 디자인 관점에서 분석 할 오픈 소스 소프트웨어를 선택해야하는 소프트웨어 디자인 클래스를 사용하고 있습니다. 100,000 줄 이상의 코드와 같은 큰 프로젝트 여야합니다. 저는 훌륭한 소프트웨어 디자인에 대한 통찰력을 갖도록 매우 잘 설계되고 설계된 소프트웨어를 선택하고 싶습니다. 좋은 디자인이란 의미있는 클래스와 아키텍처, (디자인) 패턴의 좋은 사용, 추상화의 좋은 사용, 좋은 구성 …

2
올바른 디자인 패턴 선택
저는 항상 디자인 패턴 활용의 중요성을 인식했습니다. 다른 개발자가 가장 적합한 것을 선택하는 방법에 대해 궁금합니다. 순서도와 같은 일련의 특성을 사용하여 결정하는 데 도움이됩니까? 예를 들면 다음과 같습니다. 객체가 관련되어 있지만 구체적 클래스를 지정하지 않으려면 Abstract를 고려하십시오. 인스턴스화가 파생 클래스에 남아있을 때 팩토리를 고려하십시오. 집계 오브젝트의 요소에 순차적으로 액세스해야합니다. 반복자를 …


1
“StringBuilder”는 Builder Design Pattern의 응용 프로그램입니까?
"빌더"패턴은 "텔레 스코핑 생성자"반 패턴을 다루는 것으로 제한됩니까, 아니면 불변 개체의 복잡한 생성에 대한보다 일반적인 문제를 해결한다고 할 수 있습니까? 이 StringBuilder클래스에는 이름에 "builder"라는 단어가 있지만 텔레 스코핑 생성자와는 아무런 관련이 없으며 변경 불가능한 객체의 생성자에 전달하는 데 필요한 모든 데이터를 수집하는 데 도움이됩니다. 나에게 그것은 대답이 매우 "예"인 것처럼 …

9
빌더 패턴을 구현할 때 빌더 클래스가 필요한 이유는 무엇입니까?
빌더 패턴 (주로 Java)의 많은 구현을 보았습니다. 그들 모두는 엔티티 클래스 (클래스라고합시다 Person)와 빌더 클래스를 가지고 PersonBuilder있습니다. 빌더는 다양한 필드를 "스택" new Person하고 인수가 전달 된 a 를 리턴합니다 . 모든 빌더 메소드를 Person클래스 자체 에 넣는 대신 명시 적으로 빌더 클래스가 필요한 이유는 무엇 입니까? 예를 들면 다음과 같습니다. …

10
일반적으로 객체 또는 해당 멤버 변수를 함수로 보냅니 까?
이 두 경우 사이에 일반적으로 허용되는 방법은 다음과 같습니다. function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } 또는 function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } 다시 말해서 일반적으로 전체 객체를 전달하거나 필요한 필드 만 전달하는 것이 더 낫습니까?

7
나중에 사용하기 위해 루프에 플래그를 설정하는 것이 코드 냄새입니까?
특정 조건이 true가 될 때까지 맵을 반복 한 다음 나중에 해당 조건을 사용하여 더 많은 작업을 수행하는 코드가 있습니다. 예: Map<BigInteger, List<String>> map = handler.getMap(); if(map != null && !map.isEmpty()) { for (Map.Entry<BigInteger, List<String>> entry : map.entrySet()) { fillUpList(); if(list.size() > limit) { limitFlag = true; break; } } } …

9
파이썬과 같이 동적으로 유형이 지정된 언어에서만 가능한 디자인 패턴이 있습니까?
관련 질문을 읽었습니다. Python과 같은 동적 언어에서 불필요한 디자인 패턴이 있습니까? Wikiquote.org 에서이 인용구 를 기억했습니다 동적 타이핑의 멋진 점은 계산 가능한 모든 것을 표현할 수 있다는 것입니다. 유형 시스템은 그렇지 않습니다. 유형 시스템은 일반적으로 결정 가능하며 하위 집합으로 제한합니다. 정적 유형 시스템을 선호하는 사람들은“괜찮습니다. 충분합니다. 여러분이 작성하고 싶은 흥미로운 …

3
ActiveRecord 패턴의 단점은 무엇입니까?
데이터 액세스 / 비즈니스 개체에 ActiveRecord 패턴을 사용하는 데 어떤 단점이 있는지 궁금합니다. 제가 머리 꼭대기에서 생각할 수있는 유일한 것은 그것이 단일 책임 원칙을 위반한다는 것입니다. 그러나 AR 패턴은이 이유만으로는 사용하지 않는 것을 정당화하기에 "충분히 좋은"것처럼 보이지 않을 정도로 일반적입니다. 보기는 다음과 코드 I 작업 종종 아무도 때문에 왜곡 될 …

10
추상 클래스의 인터페이스
동료와 기본 클래스와 인터페이스의 관계에 대한 의견이 다릅니다. 인터페이스 구현이 필요할 때 해당 클래스를 사용할 수 없다면 클래스가 인터페이스를 구현해서는 안된다고 생각합니다. 즉, 다음과 같은 코드를보고 싶습니다. interface IFooWorker { void Work(); } abstract class BaseWorker { ... base class behaviors ... public abstract void Work() { } protected string …

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