«design-patterns» 태그된 질문

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

8
관계형 데이터베이스에서 싱글 톤을 모델링하는 가장 좋은 방법
웹 응용 프로그램을위한 관계형 데이터베이스 스키마를 설계 할 때 종종 하나의 행과 하나의 행만 포함하는 테이블을 만드는 경우가 종종 있습니다. 그것이 그것을 설계하는 잘못된 방법 인 것 같은 느낌이 들지만, 나는 훨씬 더 나은 것을 생각 해낼 수 없거나, 분명히 "올바른 방법"입니다. 최근 예는 사용자가 홈 페이지의 컨텐츠를 수동으로 제어 …

4
병렬 계층-부분적으로 동일, 부분적으로 다릅니다
비슷한 질문이 많이 있습니다. 1 ,2 ,3 ,4 , 그러나이 질문에서는 그렇지 않은 것처럼 보이거나 솔루션이 최적으로 보이지도 않습니다. 다형성, 제네릭 및 믹스 인을 사용할 수 있다고 가정하면 일반적인 OOP 질문입니다. 사용되는 실제 언어는 OOP Javascript (Typescript)이지만 Java 또는 C ++에서 동일한 문제입니다. 나는 때때로 같은 행동 (인터페이스와 구현)을 공유하는 …

3
글로벌 요청 컨텍스트-안티 패턴?
저는 오늘 파이썬 웹 프레임 워크와 그에 대한 인상에 대해 제 동료에게 이야기하고있었습니다. 전 세계 요청을받은 Flask가 악취가 나고 반 패턴이라고 생각합니다. 문서는 요청 컨텍스트에 대해 말 : 반대로 요청을 처리하는 동안 몇 가지 다른 규칙이 있습니다. 요청이 활성화되어있는 동안 컨텍스트 로컬 객체 (flask.request 및 기타)는 현재 요청을 가리 킵니다. …

1
큰 객체 계층 구조로 방문자 패턴 사용
문맥 객체 계층 구조 (표현식 트리)에서 "의사"방문자 패턴 (이중 디스패치를 ​​사용하지 않는 의사)을 사용했습니다. public interface MyInterface { void Accept(SomeClass operationClass); } public class MyImpl : MyInterface { public void Accept(SomeClass operationClass) { operationClass.DoSomething(); operationClass.DoSomethingElse(); // ... and so on ... } } 그러나 MyInterface의 구현 수가 상당수 (~ 50 …

3
OOP에서 클래스 디자인에 어떻게 접근합니까?
OO 솔루션을 디자인하려고 할 때 나는 일반적으로 클래스 이름 (명사), 그들이하는 것 (동사) 및 다른 클래스와의 협력 방식을 나열 하는 CRC 모델링을 사용합니다 . 이 블로그 에는이 명사-동사 접근법에 대해 다음과 같이 말할 수 있습니다. ...This approach, which I will call “noun and verb,” is so limited I’ll dare to …

5
공개 폐쇄 원칙의 이점을 활용하십니까?
OCP (Open-Closed Principal)는 개체가 확장을 위해 열려 있지만 수정을 위해 닫혀 있어야한다고 명시하고 있습니다. 나는 그것을 이해하고 SRP와 함께 사용하여 한 가지만 수행하는 클래스를 만듭니다. 그리고 일부 하위 클래스에서 확장되거나 재정의 될 수있는 메서드로 모든 동작 컨트롤을 추출 할 수있는 많은 작은 메서드를 만들려고합니다. 따라서 종속성 주입 및 구성, 이벤트, …

1
제어 반전은 종속성 반전과 어떤 관련이 있습니까?
웹 전체의 많은 기사에서 제어 및 종속성 반전 원칙이라는 용어는 혼합되어 동의어로 사용되는 것으로 보입니다 (더 혼란은 "DI 컨테이너"및 "IoC 컨테이너"라고하는 도구에 의해 시행됩니다). Wikipedia 기사 는 IoC가 DI와 동일하지 않다는 것을 설명하려고 노력합니다. IoC (inversion of control)는 컴퓨터 프로그램의 사용자 지정 작성 부분이 재사용 가능한 일반 라이브러리에서 제어 흐름을받는 …

5
엔터티 프레임 워크를 사용한 도메인 기반 디자인의 함정
내가 공부 한 DDD에 대한 많은 튜토리얼이 대부분 이론을 다루고 있습니다. 그것들은 모두 기본적인 코드 예제를 가지고 있습니다 (Pluralsight 및 이와 유사한). 웹에서는 소수의 사람들이 EDD를 사용하여 DDD를 다루는 학습서를 작성하려고 시도합니다. 잠깐 공부를 시작하면 서로 다른 점을 빨리 알 수 있습니다. 어떤 사람들은 앱을 최소한으로 유지하고 EF 위에 저장소 …

4
MVC 및 RESTful API 서비스
MVC는 매우 간단합니다. 모델, 컨트롤러 및 뷰가 있습니다. 웹 사이트를 만들 때 ' client가 REST 키워드 요청을 서버로 전송-> 서버가 요청한 URL을 컨트롤러 작업과 일치-> 데이터 수집 / 처리를 위해 모델을 호출하여 결과를 얻음 으로써 모든 웹 사이트가 함께 제공됩니다. -> 결과를 ​​HTML 페이지 (보기) ' 로 클라이언트에 다시 반환합니다 …

2
개체 구성 요소 시스템이 디커플링 / 정보 숨기기에 끔찍하지 않습니까?
제목은 의도적으로 쌍곡 적이며 패턴에 대한 나의 경험이 아닐 수 있지만 여기에 내 추론이 있습니다. 엔터티를 구현하는 "일반적인"또는 논란의 여지가없는 방법은 그것들을 객체로 구현하고 일반적인 행동을 서브 클래 싱하는 것입니다. 의 고전적인 문제에 대한이 리드 "는 것입니다 EvilTree의 서브 클래스 Tree나 Enemy?". 다중 상속을 허용하면 다이아몬드 문제가 발생합니다. 우리는 대신 …

5
메모리 관리 언어에 대한 참조 카운팅 패턴?
Java 및 .NET에는 메모리를 관리하는 멋진 가비지 수집기 및 외부 객체 ( Closeable, IDisposable)를 단일 객체가 소유 한 경우에만 신속하게 해제 할 수있는 편리한 패턴이 있습니다 . 일부 시스템에서는 두 구성 요소가 독립적으로 리소스를 소비해야하며 두 구성 요소가 모두 리소스를 해제 한 경우에만 해제해야합니다. 현대 C ++에서는 모든 문제가 해결 …

3
예외 또는 중복없이 입력 유효성 검사를 수행하는 방법
특정 프로그램에 대한 인터페이스를 만들려고 할 때 일반적으로 유효성이 검사되지 않은 입력에 의존하는 예외가 발생하지 않도록 노력하고 있습니다. 그래서 종종 발생하는 일은 다음과 같은 코드를 생각한 것입니다 (이것은 예제를위한 예일뿐입니다. 예를 들어 Java의 기능을 신경 쓰지 마십시오). public static String padToEvenOriginal(int evenSize, String string) { if (evenSize % 2 == …

2
트랜잭션을 통해 비즈니스 로직을 DB-logic에서 분리
우리는 응용 프로그램에 세 가지 계층이 있습니다. 외부 API를 제공하는 서비스 계층. 비즈니스 로직을위한 BO 계층과 데이터베이스 연결을위한 DAO 계층 파일을 업데이트 할 때마다 '마지막으로 수정 한 날짜'와 같이 폴더에서 무언가를 변경하려고합니다. 이것은 거래에서 이루어져야합니다. 성공하면 파일과 폴더가 모두 편집됩니다. 또는 오류가 발생하여 트랜잭션이 롤백되므로 두 개체가 모두 이전 상태에 …

7
OO 언어로 객체 상태를 구현합니까?
나는 자동차 경주를 시뮬레이트하는 기본 코드 머신의 구현을 포함하는 Java 코드를 받았다. 이것은 고전적인 컴퓨터 과학 상태 머신이 아니라 여러 상태를 가질 수 있고 일련의 계산을 기반으로 상태를 전환 할 수있는 객체 일뿐입니다. 문제를 설명하기 위해 자동차 상태에 대한 일부 상수 (예 : OFF, IDLE, DRIVE, REVERSE 등)를 정의하는 중첩 …

2
모범 사례에서 건조 원칙?
가능한 한 열심히 프로그래밍에서 DRY 원칙을 따르려고합니다. 최근에는 OOP에서 디자인 패턴을 배우고 있었고 꽤 많은 것을 반복했습니다. 지속성을 처리하기 위해 팩토리 및 게이트웨이 패턴과 함께 리포지토리 패턴을 만들었습니다. 내 응용 프로그램에서 데이터베이스를 사용하고 있지만 원하는 경우 게이트웨이를 교체하고 다른 종류의 지속성으로 전환 할 수 있기 때문에 중요하지 않습니다. 내가 스스로 …

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