«object-oriented-design» 태그된 질문

객체 지향 디자인은 소프트웨어 문제를 해결하기 위해 객체 상호 작용 시스템을 계획하는 프로세스입니다.

4
C #에서 해시 테이블 및 사전의 실제 크기 제한
C # 4 Dictionary 또는 Hashtable에 포함될 수있는 항목 수와 이러한 구조에 포함 할 수있는 총 바이트 수에 대한 실제 제한은 무엇입니까? 나는 많은 수의 물체를 가지고 작업 할 것이며이 구조물이 언제 문제를 일으키기 시작하는지 알고 싶습니다. 문맥 상으로, 나는 많은 메모리를 가진 64 비트 시스템을 사용할 것입니다. 또한 어떤 …

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

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

5
이 시나리오에서 구성 또는 상속을 선호해야합니까?
인터페이스를 고려하십시오. interface IWaveGenerator { SoundWave GenerateWave(double frequency, double lengthInSeconds); } 이 인터페이스는 다양한 모양 (예 : SineWaveGenerator및 SquareWaveGenerator)의 파도를 생성하는 여러 클래스로 구현됩니다 . SoundWave원시 사운드 데이터가 아닌 음악 데이터를 기반으로 클래스를 생성하고 싶습니다 . 비트 이름 (초가 아님)으로 메모의 이름과 길이를 수신하고 내부적으로 IWaveGenerator기능을 사용하여 SoundWave그에 따라 작성합니다 …

3
클래스에서 속성을 사전 초기화하거나 그 과정에서 속성을 추가하는 것이 더 좋은 방법입니까?
이것이 절대적으로 철학적 인 질문이라면 유감이지만, 모범 사례가 무엇인지 궁금해서 Google에서 좋은 대답을 찾지 못하는 것 같습니다. 파이썬에서는 보통 빈 클래스를 수퍼 캐치 데이터 구조 컨테이너 (JSON 파일과 같은 종류)로 사용하고 다음과 같이 속성을 추가합니다. class DataObj: "Catch-all data object" def __init__(self): pass def processData(inputs): data = DataObj() data.a = …

4
캡슐화 남용으로 고통 받습니까?
코드 냄새가 나고 나쁜 것으로 보이는 다양한 프로젝트에서 내 코드의 무언가를 발견했지만 처리 할 수 ​​없습니다. "깨끗한 코드"를 작성하는 동안 코드를보다 쉽게 ​​읽을 수 있도록 개인 메서드를 과도하게 사용하는 경향이 있습니다. 문제는 코드가 실제로 깨끗하지만 테스트하기가 더 어렵다는 것입니다 (예, 개인 메서드를 테스트 할 수 있다는 것을 알고 있습니다 ...). …

4
“혼합”언어로 디자인 : 객체 지향 디자인 또는 기능 프로그래밍?
지난 몇 년 동안, 내가 좋아하는 언어는 점점 더 "기능적"이되고 있습니다. 저는 이제 "하이브리드": C #, F #, Scala와 같은 언어를 사용합니다. 나는 도메인 객체에 해당하는 클래스를 사용하여 응용 프로그램을 디자인하고, 코딩이 더 쉽고, 더 정확하고, 더 안전하고 (특히 컬렉션에서 작동하거나 함수를 전달할 때) 기능적 기능을 사용하고 싶습니다. 그러나 디자인 …

9
SOLID와 정적 방법
내가 자주 겪는 문제는 다음과 같습니다. Product 클래스가있는 웹 상점 프로젝트가 있습니다. 사용자가 제품에 리뷰를 게시 할 수있는 기능을 추가하고 싶습니다. 그래서 제품을 참조하는 Review 클래스가 있습니다. 이제 제품에 대한 모든 리뷰를 나열하는 방법이 필요합니다. 두 가지 가능성이 있습니다. (ㅏ) public class Product { ... public Collection<Review> getReviews() {...} } …

7
디자인 관점에서 로깅에 대한 모범 사례는 무엇입니까? [닫은]
폐쇄되었습니다 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 육년 전 . 현재 작업중 인 응용 프로그램에 로깅을 추가하고 싶습니다. 전에 로깅을 추가했지만 여기서는 문제가되지 않습니다. 그러나 객체 지향 언어의 …

10
속성의 요점은 무엇입니까?
다음은 속성과 내 반론에 대한 몇 가지 주장입니다. getter 및 setter 메소드를 작성하는 것보다 사용하기 쉬움 Getter와 Setter 메소드 쌍은 코드 ​​냄새입니다. 이것을 쉽게 작성하는 것은 Scantron 양식을 사용하고 모든 'C'를 채워 수학 시험에 쉽게 실패하지 못하게하는 것과 같습니다. 지속성을 위해 상태 만 포함 된 객체는 getter / setter를 사용하지 …

2
객체 지향 후기 바인딩
에서 객체 지향의 앨런 Kays 정의 부분적으로 이해하지 않는 것이이 정의가있다 : 나에게 OOP는 메시징, 로컬 보존 및 상태 프로세스 숨기기 및 모든 것의 극단적 인 후기 바인딩만을 의미합니다. 그러나 "LateBinding"은 무엇을 의미합니까? 이것을 C #과 같은 언어에 어떻게 적용 할 수 있습니까? 왜 이것이 그렇게 중요한가?

4
클래스 복제 패턴?
현재 내 프로젝트에서 솔로 개발자로 일하고 있습니다. 나는 회사를 떠난 다른 개발자로부터 프로젝트를 물려 받았습니다. C #의 모델 뷰 컨트롤러 스타일 웹 응용 프로그램입니다. 객체 관계형 매핑에 Entity Framework를 사용합니다. 도메인 모델에는 유형에 대한 두 가지 다른 클래스 세트가 있습니다. 한 세트는 ORM과의 상호 작용에 사용되며 다른 세트는 MVC 시스템의 …

5
일련의 작업을위한 최고의 OOP 디자인 패턴
응용 프로그램을 개발 중이며 모듈은 다음과 같은 재무 작업을 순차적으로 수행합니다. 사용자가 특정 금액을 은행 계좌로 이체하도록 요청하는 경우 : 지금 거래가 가능한지 확인 하시겠습니까? (거래는 특정 기간에만 수행 할 수 있습니다) 사용자가 인출 할 최소 금액을 요청했는지 확인 사용자에게 기본 계정이 있는지 확인 위의 모든 작업 결과를 기록해야합니다. 위의 …

4
“조기 추상화”란 무엇입니까?
나는 문구가 arround에 던져지는 것을 들었고 나에게 논쟁은 완전히 미친 소리로 들린다. (여기서 내가 밀짚을 치고 있다면 미안하지만 내 의도는 아니다) 일반적인 경우가 무엇인지 알기 전에 추상화를 생성하고 싶지 않습니다. 그렇지 않으면 (1) 속하지 않은 추상화에 포함하거나 (2) 중요한 것을 생략 할 수 있습니다. (1) 나에게 이것은 프로그래머가 실용적이지 않은 …

2
비즈니스 로직을 서비스 계층으로 이동하지 않고 도메인 개체 속성에 대한 고유 한 제약 조건을 확인하는 우아한 방법이 있습니까?
나는 지금까지 약 8 년 동안 도메인 중심 디자인을 적용 해 왔으며이 모든 세월이 지난 후에도 여전히 나를 괴롭힌 한 가지가 있습니다. 그것은 도메인 객체에 대한 데이터 스토리지의 고유 레코드를 확인하는 것입니다. 2013 년 9 월 Martin Fowler는 가능한 경우 모든 도메인 객체에 적용해야하는 TellDon'tAsk 원칙을 언급했으며 ,이 메시지는 작업이 …

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