«design» 태그된 질문

소프트웨어 설계를 통한 솔루션의 문제 해결 및 계획에 대한 질문.

5
UI에 진행 상황을보고하기위한 최상의 전략-콜백은 어떻게 발생합니까?
때때로 사용자는 실행하는 데 시간이 걸리는 확장 된 기술 작업을 시작합니다. 이 경우 일반적으로 현재 진행중인 작업에 대한 정보와 함께 진행률 표시 줄을 표시하는 것이 좋습니다. UI와 논리 계층을 밀접하게 연결하지 않으려면 일반적으로 일종의 프록시를 통해 통신하는 것이 가장 좋습니다. 즉, 백엔드는 자체 UI 요소를 조작하거나 중개 계층과 직접 상호 …

2
인스턴스가 하나만있는 Python 클래스 : (단일) 클래스 인스턴스를 언제 작성해야합니까?
한 번만 인스턴스화되는 파이썬 클래스가 주어지면 클래스의 객체가 하나뿐입니다. 어떤 경우에 클래스와 직접 작업하는 대신 단일 클래스 인스턴스를 만드는 것이 타당한 지 궁금합니다. 비슷한 질문 이 있지만 다른 초점을 가지고 있습니다. 전역 변수와 함수를 클래스로 그룹화하고 파이썬 전용이 아닙니다. 후자는 (파이썬에서) 클래스도 객체라는 사실을 고려하지 않습니다. 최신 정보: 파이썬에서는 클래스와 …


5
항상 내부 데이터 구조를 완전히 캡슐화해야합니까?
이 수업을 고려하십시오 : class ClassA{ private Thing[] things; // stores data // stuff omitted public Thing[] getThings(){ return things; } } 이 클래스는 데이터를 저장하는 데 사용하는 배열을 관심있는 클라이언트 코드에 노출합니다. 작업중 인 앱 에서이 작업을 수행했습니다. 나는 ChordProgression일련의 Chords 를 저장하고 다른 것들을 하는 클래스를 가지고있었습니다 . …

6
적절한 디자인으로 쉽게 만들 수없는 변화는 무엇입니까?
이것은 다소 모호한 질문이지만 적절한 디자인에 대해 읽을 때 만족스럽지 못한 느낌을 받았습니다. 일반적으로 객체 지향 프로그래밍, 추상화, 팩토링 등을 배우면 디자인의 성배-그리고 그들이 항상 개발 기술을 사용한다고 주장하는 이유는 프로그램을 "쉬운 변경하기"만드는 것입니다. , "유지 가능", "유연성"또는 이러한 생산적인 사운드 개념을 표현하는데 사용되는 동의어 중 하나. ivar를 비공개로 표시하고 …

4
명령 패턴 디자인
이 이전의 명령 패턴 구현이 있습니다. 그것은 모든 DIOperation 구현을 통해 Context를 전달하는 것이지만, 학습과 학습 과정에서 멈추지 않는 나중에 실현되지 않는 것을 나중에 깨달았습니다. 또한 여기에있는 "방문"은 실제로 적합하지 않으며 혼동된다고 생각합니다. 나는 실제로 내 코드를 리팩토링하려고 생각하고 있습니다. 명령은 다른 것에 대해 아무것도 알지 못하고 현재 모두 동일한 …

5
추상 또는 가상 방법을 사용해야합니까?
기본 클래스가 순수한 인터페이스 클래스가 바람직하지 않다고 가정하고 아래의 두 가지 예를 사용하면 추상 또는 가상 메소드 클래스 정의를 사용하는 것이 더 좋은 방법입니까? "추상"버전의 장점은 아마도 더 깔끔해 보이고 파생 클래스가 희망적으로 의미있는 구현을하도록 강요한다는 것입니다. "가상"버전의 장점은 다른 버전에서 쉽게 가져올 수 있고 추상 버전에서 요구하는 것과 같은 …
11 c#  design 

3
뷰 모델에서 비즈니스 오브젝트 사용
재사용 가능한 비즈니스 오브젝트를 사용할 때 뷰 모델을 빌드 할 때 가장 좋은 방법은 무엇입니까? 우리는 Builder뷰 모델을 구축하기 위해 호출하는 객체를 사용합니다 . 각 논리적 뷰 단위 (주문, 사용자 등)에 대해 하나의 빌더로, 각 단위는 여러 가지 다른 뷰 모델을 포함 할 수 있습니다 (주문에는 요약, 오더 라인 등이 …

3
try-catch-finally 블록의 관련 코드가“얼마나 나쁜가?”
이것은 관련 Q : 반환 스타일이 나쁘거나 위험한 작업을 수행하기 위해 finally 절을 사용합니까? 참조 된 Q에서 finally 코드는 사용 된 구조 및 프리 페치의 필요성과 관련이 있습니다. 내 질문은 조금 다르며 더 많은 사람들에게 독창적이라고 생각합니다. 내 특정 예는 C # winform 앱이지만 C ++ / Java 최종 사용에도 …

4
C ++에서 "인터페이스"라는 용어
자바는 사이에 명확한 구분을하게 class하고 interface. (C #도 마찬가지라고 생각하지만 경험이 없습니다.) 그러나 C ++을 작성할 때 클래스와 인터페이스 사이에 언어로 구별되는 것은 없습니다. 결과적으로 나는 항상 인터페이스가 자바에서 다중 상속이 없다는 해결 방법으로 보았습니다. C ++에서 이러한 구별을 만드는 것은 임의적이며 의미가 없습니다. 나는 항상 "가장 명백한 방법으로 쓰기"접근 …

5
테스트 가능한 코드 작성과 추론 적 일반성 피하기
오늘 아침에 일부 블로그 게시물을 읽고, 그리고 운 좋게 발견 한 이것 : Customer 인터페이스를 구현하는 유일한 클래스가 CustomerImpl 인 경우 실제로는 런타임에 대체 할 것이 없기 때문에 다형성 및 대체 가능성이 없습니다. 가짜 일반성입니다. 인터페이스를 구현하면 복잡성이 추가되고 구현이 하나 뿐인 경우 불필요한 복잡성을 추가한다고 주장 할 수 있습니다. …

3
Scala 및 LWJGL을 사용한 단순화 된 게임을위한 기능적 프로그래밍 접근법
Java 명령형 프로그래머 인 I는 Functional Programming 설계 원칙 (특히 참조 투명성)을 기반으로 간단한 버전의 Space Invader를 생성하는 방법을 이해하고 싶습니다. 그러나 디자인을 생각할 때마다 함수형 프로그래밍 순수 론자들에 의해 멈춰진 것과 같은 극도의 가변성이라는 쇠약에 빠져들게됩니다. 함수형 프로그래밍을 배우기 위해 LWJGL을 사용하여 Scala 에서 매우 간단한 2D 대화 형 …

6
단일 책임 원칙으로 고군분투
이 예제를 고려하십시오. 웹 사이트가 있습니다. 사용자가 게시물을 작성하고 (무엇이든 가능) 게시물을 설명하는 태그를 추가 할 수 있습니다. 코드에는 게시물과 태그를 나타내는 두 개의 클래스가 있습니다. 이 클래스 Post들을 호출 할 수 있습니다 Tag. Post게시물 생성, 게시물 삭제, 게시물 업데이트 등 Tag을 처리합니다. 태그 생성, 태그 삭제, 태그 업데이트 등을 …

8
애자일 또는 XP와 같은 혁신적인 방법으로 설계 막 다른 곳에 도달하면 어떻게해야합니까?
Martin Fowler의 유명한 블로그 게시물 인 Design Dead는 무엇입니까? 필자가받은 인상적인 인상 중 하나는 애자일 방법론과 극한 프로그래밍에서 프로그래밍뿐만 아니라 디자인도 진화 적이라는 사실을 감안할 때 항상 리팩터링해야하는 포인트가 있다는 것입니다. 프로그래머의 수준이 좋을 때, 설계의 의미를 이해하고 중대한 실수를하지 않으면 코드가 계속 발전 할 수 있습니다. 그러나 정상적인 상황에서이 …
11 design  agile 

1
스레드 상호 작용 그리기
UML (like) 표기법으로 스레드 상호 작용을 그리고 싶습니다 (펜 및 연필). 나는 UML을 고집하지 않는다. 독자에게는 분명한 일이다. 시퀀스 다이어그램으로 시작했지만 이것이 최선의 방법이라고 생각하지 않습니다. 항상 화면 밖에서 나오는 "액션 이니시에이터"가있어 SSD 아이디어를 깨뜨릴 수 있습니다. 나는 각각 상태 머신을 소유하는 약 9-10 개의 스레드로 중간 크기의 코드베이스를 상속 …

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