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

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

4
내가 작성한 모든 클래스가 인터페이스를 준수해야합니까?
저는 Typescript로 게임을 작성하고 있으며 " 인터페이스 기반 프로그래밍 " 이라는 아이디어를 고수하기로 결정했습니다 . 여기서는 인터페이스 대신 구현, 객체의 인터페이스를 기반으로 코드를 작성합니다. 나는 많은 수의 인터페이스와 인터페이스를 구현 한 클래스를 작성하고 한 걸음 물러서서 클래스가 단순하여 구현을 변경할 필요가 없을 정도로 간단하다는 것을 깨달았습니다. 수업은 ( Phaser.Sprite탱크처럼 행동하기 …

3
다 대다 관계를 관리하기위한 디자인 패턴이 있습니까?
이 데이터 패턴을 정의하는 데 문제가 있습니다. 여러 응용 프로그램에서 작업했습니다. 다음으로 구성됩니다. 많은 객체 자체로 구성된 객체 유형 두 번째 객체 유형으로, 각 인스턴스에는 첫 번째 객체가 '많이 있습니다' 또한, 제 1 객체의 각 서브 객체는 제 2 객체 유형에 대한 각 연관마다 수정 가능하다. 간단한 예는 다음과 같습니다. …

1
파이썬에서 예외를 언제 서브 클래 싱해야합니까?
내 코드에는 예외를 제기하는 약 7 곳이 있습니다. 이러한 예외는 모두 동일하게 처리됩니다. 오류를 로그 파일에 인쇄하고 소프트웨어 상태를 기본값으로 되 돌린 후 종료합니다. 코드를 검토하는 동안 내가 중요하게 생각하는 수석 엔지니어는 이러한 예외를 모두 서브 클래 싱해야한다고 말했다. 그의 주장은 미래에 우리는 예외를 다르게 처리하기를 원할 것이고 더 쉬울 …

3
깨끗한 코드와 하이브리드 객체 및 기능 부러워
그래서 최근에 코드에 몇 가지 주요 리팩토링을 만들었습니다. 내가하려고했던 주요 작업 중 하나는 클래스를 데이터 객체와 작업자 객체로 분리하는 것이 었습니다. 이것은 Clean Code 의이 섹션에서 영감을 얻었습니다 . 하이브리드 이 혼동은 때때로 반 객체와 반 데이터 구조 인 불행한 하이브리드 데이터 구조로 이어집니다. 중요한 기능을 수행하는 함수가 있으며, 모든 …

2
SRP를 따를 때 엔터티의 유효성 검사 및 저장을 어떻게 처리해야합니까?
내가 읽어 봤는데 클린 코드 최근 SOLID에 대한 다양한 온라인 기사를, 나는 아무것도 몰라처럼 더 나는 그것에 대해 읽고, 더 느낌. 나는이의 내가 ASP.NET MVC 3하자 말을 사용하여 웹 응용 프로그램을 짓고 있어요 가정 해 봅시다 UsersController과 Create같은 조치 : public class UsersController : Controller { public ActionResult Create(CreateUserViewModel viewModel) …

3
긴 매개 변수 목록 대 긴 상태 변수 목록
C ++ 책에서 저자는 대부분의 매개 변수를 클래스의 상태 변수로 리팩토링 할 수 있으므로 긴 매개 변수 목록이있는 함수가 더 이상 필요하지 않다고 말합니다. 한편, 함수형 프로그래밍 책은 상태 변수가 악의적 인 결과를 초래하여 버그가 발생하기 쉽고 코드를 병렬화하기 어렵 기 때문에 상태 변수가 악하다고 말합니다. 나는 당황하고있다. 코드가 상태 …

5
실제 값을 나타내는 상수를 업데이트하는 것이 공개 폐쇄 원칙을 위반합니까?
근로자의 연간 순소득을 계산하는 수업이 있습니다. 세금 비율을 나타내는 상수가 있습니다. 그러나 어느 날 세율이 변경되었으므로 코드를 수정해야합니다. 이 상수를 수정하는 행위 는 클래스가 수정을 위해 폐쇄되어야한다고 가정하기 때문에 공개 폐쇄 원칙 위반을 나타 냅 니까?

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

2
게터 만있는 인터페이스에서 코드 냄새가 나는가?
(내가 본 이 질문을 하지만, 첫 번째 대답이 더 많은 설계에 대한보다 자동 속성에 대한 가고, 두 번째는 말한다 소비자의 데이터 저장 코드를 숨길 수 있는지 내가 원하는 것입니다 아니에요, / 내 코드 않습니다, 그래서 다른 의견을 듣고 싶습니다) 나는이 매우 유사 엔티티가 HolidayDiscount와 RentalDiscount'는 적어도 지속되는 경우로 길이 할인을 …

5
코드를 확장하기 어려운 추상화가 너무 많음
코드베이스에서 추상화가 너무 많거나 적어도 처리하는 데 문제가 있습니다. 코드베이스의 대부분의 메소드는 코드베이스의 최상위 A를 취하도록 추상화되었지만이 상위의 하위 B에는 이러한 메소드 중 일부의 논리에 영향을주는 새로운 속성이 있습니다. 문제는 입력이 A로 추상화되고 A 에이 속성이 없기 때문에 해당 속성에서 해당 속성을 확인할 수 없다는 것입니다. B를 다르게 처리하는 새로운 …

4
복잡한 도메인 중심 애플리케이션에서 기본 CRUD 작업에 대한 DDD 접근
우리 회사는 웹 애플리케이션을 처음부터 다시 작성하고 있습니다. 금융 업계에서 복잡한 도메인을 가진 대기업 수준의 응용 프로그램입니다. 지속성을 위해 ORM (Entity Framework)을 사용하고 있습니다. 본질적으로 응용 프로그램의 절반은 사용자로부터 원시 데이터를 수집하고 저장하는 데 중점을 둔 다음 실제 도메인 논리를 대부분 포함하는 응용 프로그램의 나머지 절반은 원시 데이터를 사용하여 원본과 …

1
비즈니스 로직과 서비스 계층
나는이 대답을 읽었습니다 : https://softwareengineering.stackexchange.com/a/234254/173318 이해하십시오. 비즈니스 규칙 은 실제 비즈니스 단계 목록 (코드 없음)을 나타냅니다. 비즈니스 로직 (Business Logic) 은 비즈니스 규칙을 코드로 변환하는 프로세스 및 이러한 코드를 "비즈니스 로직"으로 처리합니다. 그리고 서비스 계층은 무엇에 사용됩니까? 이 답변을 읽으면 비즈니스 로직과 다르지 않습니다 https://stackoverflow.com/a/4817935/4190539 서비스 계층이 비즈니스 로직과 저장소를위한 …

2
반복자를 디자인 패턴으로 만드는 것은 무엇입니까?
다른 유사한 구조와 비교할 때 Iterator를 특별하게 만드는 것이 무엇인지 궁금해했으며 Gang of Four가 그것을 디자인 패턴으로 나열했습니다. 반복자는 다형성 (공통 인터페이스를 가진 컬렉션의 계층)과 우려의 분리를 기반으로합니다 (컬렉션에 대한 반복은 데이터의 구성 방식과 독립적이어야 함). 그러나 컬렉션 계층을 예를 들어 수학 객체 (정수, 부동 소수점, 복소수, 행렬 등)의 계층과 …

4
경계 컨텍스트의 경계를 명확하게 정의하는 방법
한 달 정도 DDD를 읽고 연구 한 후, 나는 내 자신의 프로젝트를 시작하기로 결정하고 이러한 제한된 맥락으로 DDD를 만들었습니다.> 고객 제품 명령 청구 각 경계 컨텍스트에는 프리젠 테이션 계층, 도메인 계층, 영구 계층으로 나머지 API가 있습니다. 지금까지는 코드가 원활하게 실행되지만 모 놀리 식 세계에서 왔지만 여전히 다음을 알아 내려고 노력하고 …

1
상속과 구성이 아닌 특성을 언제 사용해야합니까?
OOP와 관련하여 재사용 성을 구현하는 세 가지 일반적인 방법 인 AFAIK가 있습니다. 상속 : 보통 is-a 관계를 나타내는 것 (오리 is-a 조류) 구성 : 일반적으로 Has-A 관계 (자동차 Has-A 엔진)를 나타냅니다. 특성 (예 : PHP의 특성 키워드) : ... 실제로 확실하지 않음 특성이 has-a와 is-a 관계를 모두 구현할 수 있다고 …

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