«object-oriented» 태그된 질문

시스템을 모듈 방식으로 제어 및 조작 할 수있는 일련의 객체로 모델링 할 수있는 방법론

6
엔티티 메소드 호출에 대한 DDD 인젝션 서비스
질문의 짧은 형식 엔티티 메소드 호출에 서비스를 삽입하는 것이 DDD 및 OOP의 우수 사례 내에 있습니까? 긴 형식 예 DDD에 고전적인 Order-LineItems 사례가 있다고 가정합니다. 여기에서 Order라는 도메인 엔터티가 있으며,이 루트는 또한 Root Root 역할을하며 엔터티는 Value Objects뿐만 아니라 Line Item의 컬렉션으로 구성됩니다. 엔티티. 응용 프로그램에서 유창한 구문을 원한다고 가정하면 …

1
의존성 주입을 위해 Python의 Method Resolution Order를 사용하는 것은 좋지 않습니까?
나는 Raymond Hettinger의 Pycon 강연 "슈퍼 고려 슈퍼"를보고 결정적인 방법으로 클래스 "부모"클래스를 선형화하는 Python의 MRO (Method Resolution Order)에 대해 조금 배웠습니다. 우리는 이것을 아래 코드와 같이 의존성 주입을 위해 우리의 이점으로 사용할 수 있습니다. 이제 자연스럽게 super모든 것에 사용하고 싶습니다 ! 아래의 예에서 User클래스에서 모두 상속하여 그것의 종속성을 선언 LoggingService하고 …

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

6
SRP를 구현하는 실용적인 방법은 무엇입니까?
클래스가 단일 책임 원칙을 위반하는지 확인하기 위해 사람들이 실제로 사용하는 기술은 무엇입니까? 나는 수업이 바뀌어야 할 이유가 하나 밖에 없다는 것을 알고 있지만, 그 문장에는 실제로 그것을 구현할 실질적인 방법이 부족하다. 내가 찾은 유일한 방법은 ".........해야합니다 ......... 자체" 문장을 사용하는 것입니다. 여기서 첫 번째 공백은 클래스 이름이고 나중에 공백은 메서드 …

1
OOP ECS 및 순수 ECS
먼저,이 질문이 게임 개발 주제와 관련이 있다는 것을 알고 있지만 더 일반적인 소프트웨어 생성 문제로 인해 여기에서 질문하기로 결정했습니다. 지난 한 달 동안 Entity-Component-Systems에 대해 많이 읽었으며 이제는 개념에 매우 익숙합니다. 그러나 명확한 '정의'가 누락 된 것으로 보이는 한 가지 측면이 있으며 다른 기사에서 근본적으로 다른 솔루션을 제안했습니다. 이것은 ECS가 …

6
대부분의 클래스를 데이터 필드 전용 클래스와 메소드 전용 클래스 (가능한 경우)로 분리하는 것이 좋거나 반 패턴입니까?
예를 들어, 클래스에는 보통 다음과 같은 클래스 멤버와 메소드가 있습니다. public class Cat{ private String name; private int weight; private Image image; public void printInfo(){ System.out.println("Name:"+this.name+",weight:"+this.weight); } public void draw(){ //some draw code which uses this.image } } 그러나 단일 책임 원칙과 공개 폐쇄 원칙에 대해 읽은 후 정적 메소드 …

6
똑같이 차선책으로 디자인을 반복적으로 피하는 방법은 무엇입니까?
그래서 아마도 많은 사람들처럼, 나는 종종 문제를 직감적으로 맞추고 원하는 이점을 갖는 디자인 패턴 / 접근법이있는 디자인 문제로 두통을 겪고 있습니다. 종종 어떤 종류의 작업없이 패턴 / 접근을 구현하기 어렵게 만드는 몇 가지주의 사항이있어 패턴 / 접근의 이점을 무효화합니다. 거의 모든 패턴 / 접근 방식을 반복하는 것은 매우 쉬운 일이 …

3
관련 속성 집합을 자체 구조체 / 클래스로 래핑하는 것이 좋습니다.
내 질문은 강력한 형식의 언어와 관련이 있지만 Swift에서 User 객체를 작성합니다. 사용자는 많은 링크 (FacebookProfile, InstagramProfile 등)를 가질 수 있습니다. 이것에 관한 몇 가지 질문. 링크를 자체 객체로 감싸는 것이 좋습니다? struct 사용자 { var firstName : 문자열 var lastName : 문자열 var 이메일 : 문자열 var 링크 : 링크 …

6
코딩하기 전에 OOP 시스템을 설계하는 간단한 프로세스는 무엇입니까?
프로젝트를 빌드해야 할 때마다 항상 계획이나 디자인을 고안하는 것이 아니라 필요한 클래스를 작성한 후 처음부터 전체 프로젝트를 육성하여 프로젝트를 빌드했습니다. 이제는 이것이 소프트웨어를 만드는 올바른 방법이 아니라는 것을 알고 있지만 Objected Oriented Analysis and Design이라는 제목으로 머리를 감싸는 것은 쉽지 않습니다. 하향식 절차 적 설계를보다 쉽게 ​​이해할 수 있습니다. 이는 …

3
인터페이스 분리 원리가 구체적인 방법에 적용됩니까?
인터페이스 분리 원칙에 따르면 클라이언트가 사용하지 않는 메소드에 의존해서는 안되므로 클라이언트는 인터페이스 메소드에 대해 빈 메소드를 구현해서는 안되며, 그렇지 않으면이 인터페이스 메소드를 다른 인터페이스에 배치해야합니다. 그러나 구체적인 방법은 어떻습니까? 모든 고객이 사용하지 않는 방법을 분리해야합니까? 다음 클래스를 고려하십시오. public class Car{ .... public boolean isQualityPass(){ ... } public int getTax(){ …

4
객체 지향 프로그래밍에서 메인의 책임은 무엇입니까?
객체 지향 프로그래밍에 익숙하지 않고 메인의 목적이 무엇인지 이해하지 못합니다. 네, 그것이 프로그램의 "진입 지점"이라는 것을 읽었지만 이해하지 못하는 것은 메인에 무엇이 있어야합니까? 그리고 그 책임은 무엇입니까? 메인에 쓰여진 내용이 다른 개체에 캡슐화 될 수 있지만이 방법을 얼마나 사용해야합니까? Java로 작성한 첫 번째 주요 내용은 다음과 같습니다. 매우 간단하지만 내 …

2
다른 클래스로 암시 적으로 변환하는 유일한 목적을 가진 클래스를 만드는 것은 좋지 않습니까?
Circle객체 를 생성 할 수있는 라이브러리를 사용하는 상황을 상상해보십시오. 여기 에서 원의 반경과 중심을 지정하여 객체를 정의 할 수 있습니다. 그러나 어떤 이유로 든 필수 flavour매개 변수 도 필요합니다 . 이제 Circle내 앱에서 실제로 사용해야한다고 가정 해 봅시다 .하지만 내 앱의 목적을 위해 Flavours.Cardboard매번 맛을 설정할 수 있습니다 . 이 …

3
느슨하게 결합 된 코드에 인터페이스 사용
배경 특정 유형의 하드웨어 장치의 사용에 의존하는 프로젝트가 있지만 필요한 작업을 수행하는 한 누가 하드웨어 장치를 만드는지는 중요하지 않습니다. 그렇게 말하면, 같은 일을하도록되어있는 두 장치조차도 같은 제조업체가 만들지 않으면 차이가있을 것입니다. 따라서 인터페이스를 사용하여 응용 프로그램을 관련된 특정 제조업체 / 모델 과 분리 하고 대신 인터페이스가 최상위 기능을 다루도록 하려고 …

3
책임을 분담 할 때 단일 책임을 관리하는 방법은 무엇입니까?
나는 기본 두 개의 클래스를 가지고 Operation와 Trigger. 각각에는 특정 유형의 작업 또는 트리거를 전문으로하는 여러 하위 클래스가 있습니다. A는 Trigger특정을 트리거 할 수 있습니다 Operation. 동안 Operation특정에 의해 트리거 될 수 있습니다 Trigger. 주어진 Operation것을 주어진 Trigger(또는 그 반대로) 매핑하는 코드를 작성해야 하지만 어디에 넣을 지 잘 모르겠습니다. 이 …

2
파이썬의 상속은“is-a”상속 스타일입니까 아니면 구성 스타일입니까?
파이썬이 다중 상속을 허용한다는 것을 감안할 때 파이썬의 관용 상속은 어떻게 생겼습니까? Java와 같은 단일 상속을 가진 언어에서 상속은 하나의 객체가 다른 객체의 "is-a"라고 말하고 객체간에 코드를 공유하려고 할 때 사용됩니다 (부모 객체에서 자식 객체로). 예를 들어, 당신은 말할 수 DogA는 Animal: public class Animal {...} public class Dog extends …

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