«object-oriented» 태그된 질문

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

4
읽기 전용 개체를 반환하는 모범 사례
C #의 OOP에 대한 "모범 사례"질문이 있지만 모든 언어에 적용됩니다. 속성 접근자를 통해 공개 될 객체가있는 라이브러리 클래스를 갖는 것을 고려하지만, 우리는 일반인 (이 라이브러리 클래스를 사용하는 사람들)이 라이브러리 클래스를 변경하는 것을 원하지 않습니다. class A { // Note: List is just example, I am interested in objects in general. …

3
모의 콘크리트 클래스-권장하지 않음
방금 구체적인 클래스를 조롱하는 것이 권장되지 않는 몇 가지 이유를 설명하는 "Growing Object-Oriented Software"책을 읽었습니다. MusicCentre 클래스의 단위 테스트 샘플 코드는 다음과 같습니다. public class MusicCentreTest { @Test public void startsCdPlayerAtTimeRequested() { final MutableTime scheduledTime = new MutableTime(); CdPlayer player = new CdPlayer() { @Override public void scheduleToStartAt(Time startTime) { …

12
Fortran 77로만 코딩 된 사람에게 객체 지향 프로그래밍을 어떻게 설명 할 수 있습니까?
어머니는 포트란에서 대학 논문을 썼으며, 현재 (10 년 후) 유체 시뮬레이션을위한 c ++를 배워야합니다. 그녀는 모든 절차 적 프로그래밍을 이해할 수 있지만 객체를 아무리 설명하려고해도 문제가되지 않습니다. (Java로 많은 작업을 수행하므로 객체의 작동 방식을 알고 있습니다) 너무 높은 수준의 방식으로 설명하고 있다고 생각하므로 전혀 협력하지 않고 성장한 사람에게는 실제로 의미가 …

5
Liskov 대체 원칙이 내부 검사 또는 오리 입력과 호환되지 않습니까?
오리 유형 언어에서 일반적으로 사용되는 것과 같이 물체를 스스로 검사 할 수있는 언어에서는 Liskov 대체 원칙을 볼 수 없다는 것을 올바르게 알고 있습니까? 예를 들어, 루비, 만약 클래스 B클래스에서 상속 A, 다음에 대한 모든 객체 x의 A, x.class반환에 가고 A있지만, 경우 x의 목적은 B, x.class반환하지 않을 A. 다음은 LSP에 대한 …

9
어떤 OO 디자인을 사용해야합니까 (디자인 패턴이 있습니까)?
'Bar / Club'(음료 / 사회적 장소)을 나타내는 두 가지 개체가 있습니다. 한 시나리오에서 막대 이름, 주소, 거리, 슬로건이 필요합니다. 다른 시나리오에서는 바 이름, 주소, 웹 사이트 URL, 로고가 필요합니다 그래서 같은 것을 나타내지 만 다른 필드를 가진 두 개의 객체가 있습니다. 불변의 객체를 사용하고 싶습니다. 그래서 모든 필드는 constructor에서 설정됩니다 …

5
서비스 지향 언어가없는 이유는 무엇입니까?
편집하다: 더 혼란을 피하기 위해 : 나는 웹 서비스 등에 대해 이야기 하지 않습니다 . 내부적으로 응용 프로그램을 구성하는 것에 대해 이야기하고 있지만 컴퓨터가 통신하는 방식이 아닙니다. 프로그래밍 언어, 컴파일러 및 명령형 프로그래밍 패러다임 확장 방법에 관한 것입니다. 기발한: 명령형 프로그래밍 분야에서, 우리는 지난 20 년 (또는 그 이상) 동안 …

5
내 수업이 책의 클래스 계층 구조보다 더 나쁜 이유는 무엇입니까 (초보자 OOP)?
PHP Objects, Patterns 및 Practice을 읽고 있습니다. 저자는 대학에서 수업을 모델링하려고합니다. 목표는 수업 유형 (강의 또는 세미나)과 시간당 또는 고정 가격 수업인지에 따라 수업 요금을 출력하는 것입니다. 따라서 출력은 Lesson charge 20. Charge type: hourly rate. Lesson type: seminar. Lesson charge 30. Charge type: fixed rate. Lesson type: lecture. 입력이 …

3
일반 프로그래밍, 업계에서 얼마나 자주 사용됩니까?
저는 현재 학업 환경에서 프로그래밍을하기 때문에 원하는 것을 사용할 수 있습니다. 나는 부스트 그래프 라이브러리를 사용하고 있으며 GP를 더 깊이 이해하는 노력이 가치가 있는지 궁금합니다. 궁금합니다. 일반 프로그래밍 (GP)이 업계에서 많이 사용됩니까? 내 생각에 대부분의 프로그래머는 OOP에 훨씬 익숙하거나 GP를 강조하거나 지원하지 않는 언어를 사용하고 있기 때문에 C ++에서 STL …

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

4
PHP에서 객체 지향 방식으로 데이터를 전달하는 방법은 무엇입니까?
MVC 프레임 워크 (예 : CodeIgniter)로 작업 할 때도 정기적으로 객체가 아닌 중첩 배열을 전달한다는 것을 알았습니다. 이것은 객체 지향에 대한 나의 이해를 따르지 않습니다. 예를 들어, 코드를 Java로 이식한다면 배열 (또는 벡터 등)을 전달하는 것을 꿈꾸지 않을 것입니다. 이것이 데이터를 처리하는 적절한 방법인지 궁금합니다. PHP에서 배열이 이와 같이 전달되는 …

4
역동적이고 약한 유형의 언어에서 디자인 패턴과 OOP 관행에 대한 생각은 어떻게 변합니까?
이 라인들에 이미 상당히 유용한 질문 ( " 비 OOP 디자인 패턴? ")이 있지만, 역동적이고 약한 유형의 언어로 시작하는 사람에 대한 과도기적 인 관점에 대해 더 궁금합니다. 즉, 몇 년 동안 C ++, C # 또는 Java로 프로그래밍을 해왔으며 GoF 디자인 패턴, Fowler 's Enterprise Application Architecture 의 패턴 , …

7
구조적 프로그래밍과 OO 프로그래밍
구조적 프로그래밍과 객체 지향 프로그래밍의 차이점을 보여주는 프레젠테이션을 만들고 있는데 OOP 개념을 적용하면 코딩이 훨씬 쉬워 져 청중이 실제로 OOP가 필요하다고 느끼는 예를 통해 사람들이 OOP가 필요한 이유 를 설명하고자합니다 . 어떤 아이디어 ??

4
중첩 클래스 : 유용한 도구 또는 캡슐화 위반?
그래서 나는 이것들을 사용 해야하는지 아닌지에 대해 여전히 울타리에 있습니다. 캡슐화가 극단적으로 위반된다고 생각하지만 코드에서 더 많은 유연성을 얻으면서 어느 정도의 캡슐화를 달성 할 수 있음을 알았습니다. 이전 Java / Swing 프로젝트 중첩 클래스를 어느 정도 사용했지만 이제는 C #의 다른 프로젝트로 이동했으며 사용을 피합니다. 중첩 클래스에 대해 어떻게 생각하십니까?

10
객체 지향 설계 기술을 어떻게 평가 하시겠습니까? [닫은]
폐쇄되었습니다 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 어떤 종류의 통찰력이나 질문으로 인해 사람의 OOAD 기술을 결정할 수 있습니다.

2
DDD의 예외
DDD를 배우고 있으며 특정 상황에서 예외를 던지는 것에 대해 생각하고 있습니다. 객체가 나쁜 상태로 들어갈 수 없으므로 예외는 괜찮지 만 많은 예에서 데이터베이스에 전자 메일이있는 새 사용자를 추가하려고하면 예를 들어 예외가 발생합니다. public function doIt(UserData $userData) { $user = $this->userRepository->byEmail($userData->email()); if ($user) { throw new UserAlreadyExistsException(); } $this->userRepository->add( new User( …

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