«design-patterns» 태그된 질문

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

9
Software World 외부인에게 디자인 패턴을 설명하는 방법
조카에게 디자인 패턴을 설명하고 싶지만 항상 그렇게하는 데 어려움을 겪고 있습니다. 디자인 패턴에 대한 명확한 이해가 부족하기 때문입니다. MVC, Singleton, Factory, Repository 등과 같은 패턴을 10 세의 어린이조차도 이해할 수있는 간단한 용어로 설명하는 방법을 제안하십시오. 패턴을 이해하는 데 도움이되는 예제를 찾고 있습니다. 장난감, 영화, 음악 등이있는 예

1
접착제 또는 관리 클래스는 언제 너무 많은 일을합니까?
내 디자인의 다른 클래스를 관리하는 중앙 집중식 클래스를 작성하는 경향이 있습니다. 모든 것을 저장하지는 않지만 대부분의 데이터 요청은 먼저 "관리자"에게 전달됩니다. 이 질문 에 대한 답을 보면서 나는 "신의 대상"이라는 용어를 발견했습니다. Wikipedia는 반 패턴으로 이해합니다. 데이터와 메시지를 다른 곳으로 전달하는 합법적 인 접착제 클래스 또는 모듈과 너무 많은 클래스 …

4
도메인 기반 설계의 리팩토링 [닫기]
폐쇄되었습니다 . 이 질문에는 세부 사항이나 명확성 이 필요 합니다 . 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 세부 사항을 추가하고 문제점을 명확하게하십시오 . 휴일 육년 전 . 방금 프로젝트 작업을 시작했으며 우리는 도메인 중심 설계 ( 도메인 중심 설계 : 소프트웨어 중심의 태클 복잡성에서 …

2
함수형 프로그래밍은 동일한 객체가 여러 장소에서 참조되는 상황을 어떻게 처리합니까?
나는 사람들이 (이 사이트에서도) 일상적으로 기능적 프로그래밍 패러다임을 칭찬하면서 모든 것이 불변의 것을 갖는 것이 얼마나 좋은지를 강조하고 있습니다. 특히 사람들은 C #, Java 또는 C ++와 같은 전통적인 명령형 OO 언어에서도 Haskell과 같은 순수한 기능 언어뿐만 아니라 프로그래머 에게이 기능을 강요하는 방식 으로이 접근법을 제안합니다. 나는 변이성과 부작용을 발견하기 …

3
여러 스위치 케이스로 애플리케이션을 리팩터링하는 방법은 무엇입니까?
정수를 입력으로 사용하고 입력을 기반으로 다른 클래스의 정적 메소드를 호출하는 응용 프로그램이 있습니다. 새로운 숫자가 추가 될 때마다 다른 케이스를 추가하고 다른 클래스의 다른 정적 메소드를 호출해야합니다. 이제 스위치에 50 개의 케이스가 있으며, 다른 케이스를 추가해야 할 때마다 나는 소리 쳤다. 더 좋은 방법이 있습니까? 나는 몇 가지 생각을 하고이 …

3
프로그래머가 강제로 정의하도록 기본 클래스의 추상 속성
임베디드 장치의 상태 패턴으로 코딩하고 있습니다. State라는 기본 / 추상 클래스가 있으며 각 개별 (콘크리트) 상태 클래스는 추상 상태 클래스를 구현합니다. 주 클래스에는 여러 가지 추상 메소드가 있습니다. discrete (concrete) 클래스에서 추상 메서드를 구현하지 않으면 Visual Studio에서 다음과 같은 오류가 발생합니다. ... 오류 1 'myConcreteState'가 상속 된 추상 멤버 'myAbstractState'를 …

1
델파이 파스칼에서 MVVM 및 MVC 구현을위한 모범 사례
저는 델파이 파스칼 프로그래머이고, 최신 엠바 카데로 델파이 XE를 사용하고 있으며, 모델 뷰 컨트롤러 및 모델 뷰 뷰 모델과 같은 디자인 패턴을 이용하고 싶습니다. 그러나 웹 에서이 작업을 파스칼로 수행하는 모범 사례에 대해서는별로없는 것 같습니다. 내가 찾을 수있는 대부분의 예는 C #에 있으며 일부 언어 기능은 파스칼로 제공되지 않으므로 해당 …

2
리포지토리로 또는 리포지토리로
Domain Driven Design에 대해 처음 알게되었을 때 데이터베이스에 대해 원시인과 같은 SQL 쿼리를 던진 멋진 아이들을위한 최고의 노하우였던 저장소 및 작업 단위 패턴에 대해서도 소개했습니다. 이 주제에 대해 더 깊이 알게되면 작업 단위와 저장소를 세션 또는 컨텍스트라는 하나의 API로 구현하는 EF 및 NHibernate 와 같은 ORM 때문에 더 이상 필요하지 …

2
Head First Design Patterns의 Duck 예제에 표시된 것처럼 컨텍스트 상속은 전략 패턴과 관련이 없습니까?
에서 헤드 퍼스트 디자인 패턴 그것은 가르치는 전략 패턴을 오리의 다른 서브 클래스가 런타임에 특정 동작을 할당 할 수있는 오리 예를 사용하여. 전략 패턴의 목적은 런타임에 단일 객체의 동작 을 변경 하는 것이지만, Duck의 상속을 사용하여 다양한 유형의 Duck의 동작을 변경하는 것입니다. 관련성? Duck의 컨텍스트 상속이 전략 패턴과 관련이 없거나 …

4
라이브러리 분리를 허용하면서 다형성 동작을위한 디자인 패턴
Item클래스 의 계층 구조가 있다고 가정 해 봅시다 Rectangle, Circle, Triangle. 나는 그것들을 그릴 수 있기를 원하므로 첫 번째 가능성은 Draw()각각에 가상 방법을 추가하는 것입니다 . class Item { public: virtual ~Item(); virtual void Draw() =0; }; 그러나 Core 라이브러리에는 기본 표현 만 포함되어 있지만 그리기 기능을 별도의 Draw 라이브러리로 …

3
의도적으로 디자인 패턴과 리팩토링을 어떻게 연습 할 수 있습니까? [닫은]
닫은. 이 질문은 주제에 맞지 않습니다 . 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? Software Engineering Stack Exchange에 대한 주제가 되도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 패턴 리팩토링 책을 읽고 패턴 을 리팩토링하고 사용하는 새로운 방법에 대한 의도적 인 연습 없이는 기술이 향상되지 않기 때문에 기술을 연습 …

5
모범 사례-함수 호출시 랩핑 vs 가드 인 함수에서 조기 종료 추가
나는 이것이 유스 케이스에 따라 다를 수 있다는 것을 알고 있지만, 너무 자주 궁금해합니다. 일반적으로 선호되는 구문이 있습니까? 함수에있을 때 가장 좋은 방법은 무엇인지 묻지 않고 일찍 종료 해야하는지 또는 함수를 호출하지 않아야하는지 묻습니다. 랩 의 경우 주변의 함수 호출 if (shouldThisRun) { runFunction(); } if ( guard ) 기능이 …

2
리포지토리 패턴 및 DAL 객체 생성
내가 배운 한 IRepository에는 CRUD. 그리고 우리는 이것을 상속 IRepository과 같은 우리의 다른 인터페이스에 IProduct구현할 IProduct구체적인 클래스 ProductRepository와 같은 방법과를, GetAllProducts(), Top5Products(). n- 계층 아키텍처에서도 동일한 작업을 수행 할 수 있습니다. 같은, 생성 DAL Class Library과에서 클래스 정의 Product와 같은 방법과를 GetAllProducts(), Top5Products(). 모두 DAL.Product와 Repo.ProductRepository우리는 초기화 클래스 DB Context의 …

3
값으로 전달 된 매개 변수의 값을 수정하지 않는 이유가 있습니까?
함수 본문에서 값별 매개 변수의 값을 수정하거나 반대하는 객관적이고 지원 가능한 소프트웨어 엔지니어링 인수가 있습니까? 우리 팀에서 반복되는 스 패트 (주로 좋은 재미)는 값으로 전달 된 매개 변수를 수정 해야하는지 여부입니다. 팀 구성원 중 일부는 매개 변수를 절대로 지정해서는 안된다는 점을 잘 알고 있으므로 원래 함수에 전달 된 값을 항상 …

1
패턴은 빌딩 블록이 아니므로 MVC / MVP 패턴에서 앱을 빌드하지 않아야합니까?
디자인 패턴에 대한 이 페이지와 코드를 작성할 때 어떻게 처리해야하는지 읽었습니다 . 링크의 제목은 다음과 같습니다. 패턴은 빌딩 블록이 아닙니다. 올바르게 이해하면 디자인 패턴이 적절할 때까지 디자인 패턴을 사용하지 않는 것입니다. 맞습니까? 전략 패턴을 사용할 것이라고 말하지 말고 코드를 작성할 때까지 기다렸다가 전략 패턴을 사용하는 것이 디자인에 적합하다면 사용하십시오. 나는 …

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