«object-oriented» 태그된 질문

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

12
객체 지향 프로그래밍을 배우기 전에 왜 절차 적 프로그래밍을 배워야 하는가?
폐쇄되었습니다 . 이 질문은 의견 기반 입니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 사실과 인용으로 답변 할 수 있도록 질문을 업데이트하십시오 . 휴일 육년 전 . 저는 지금 IT 대학교에서 4 학년이되어이 주제에 관해 교수와 이야기 할 때 저의 의견을 거부하고 매우 큰 비판을받습니다. …

4
객체 경계에 걸친 정보 유출
종종 비즈니스 객체에는 정보가 객체 경계를 너무 자주 넘어야하는 상황이 있습니다. OO를 수행 할 때는 정보가 하나의 객체에 있고 가능한 한 해당 정보를 처리하는 모든 코드가 해당 객체에 있어야합니다. 그러나 비즈니스 규칙은이 원칙을 따르지 않아 문제가 발생합니다. 예를 들어 가격이있는 InventoryItem을 나타내는 많은 OrderItem이있는 Order가 있다고 가정합니다. InventoryItem.GetPrice ()로 수량을 …

12
비전문가에게 OOP 개념을 설명하는 방법?
잠김 . 이 질문과 그 답변은 주제를 벗어난 것이지만 역사적 의미가 있기 때문에 잠겨 있습니다. 현재 새로운 답변이나 상호 작용을받지 않습니다. 나는 종종 사람들에게 프로그래머라고 말하는 것을 피하려고 노력한다. 내가 Java로 프로그래밍하고 있다고 말하면 종종 언어에 대한 일반적인 질문과 언어가 x와 y와 어떻게 다른지 묻습니다. 나는 또한 1) 나는 그 …

4
도메인 기반 설계의 리팩토링 [닫기]
폐쇄되었습니다 . 이 질문에는 세부 사항이나 명확성 이 필요 합니다 . 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 세부 사항을 추가하고 문제점을 명확하게하십시오 . 휴일 육년 전 . 방금 프로젝트 작업을 시작했으며 우리는 도메인 중심 설계 ( 도메인 중심 설계 : 소프트웨어 중심의 태클 복잡성에서 …


4
C ++ 큰 템플릿 구현을 처리하는 기본 방법
일반적으로 C ++ 클래스를 선언 할 때는 헤더 파일에 선언 만 넣고 구현을 소스 파일에 두는 것이 가장 좋습니다. 그러나이 디자인 모델은 템플릿 클래스에서 작동하지 않는 것 같습니다. 온라인을 살펴보면 템플릿 클래스를 관리하는 가장 좋은 방법에 대한 두 가지 의견이있는 것 같습니다. 1. 헤더의 전체 선언 및 구현. 이것은 매우 …

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

6
추상 클래스에는 어떤 코드가 포함되어야합니까?
나는 최근에 추상 클래스 사용에 대해 고민하고 있습니다. 때로는 추상 클래스가 미리 만들어져 파생 클래스가 작동하는 방식의 템플릿으로 작동합니다. 이는 다소 높은 수준의 기능을 제공하지만 파생 클래스에서 구현할 특정 세부 정보를 생략한다는 것을 의미합니다. 추상 클래스는 몇 가지 추상 메소드를 배치하여 이러한 세부 사항의 필요성을 정의합니다. 이러한 경우 추상 클래스는 …

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

3
객체 이니셜 라이저와 빌더 및 유체 인터페이스를 사용할 때 요점이 있습니까?
Java 및 C #에서는 매개 변수를 사용하여 생성자를 정의하거나, 오브젝트를 구성한 후 각 특성을 정의하거나, 빌더 / 유체 인터페이스 패턴을 사용하여 초기화시 설정할 수있는 특성으로 오브젝트를 작성할 수 있습니다. 그러나 C # 3에는 객체 및 컬렉션 이니셜 라이저가 도입되어 빌더 패턴이 크게 쓸모가 없었습니다. 이니셜 라이저가없는 언어에서는 빌더를 구현 한 …

2
JavaScript에서 도우미 함수에 권장되는 방법은 무엇입니까?
도우미 기능에 권장되는 방법은 무엇입니까? 하나의 기술을 선택하고 새로운 "클래스"를 만들기 위해 실행하고 싶습니다. 내가 생각한 디자인 옵션은 다음과 같습니다. 옵션 1 : 외부 범위의 도우미 기능, 인스턴스 컨텍스트를 사용하여 호출 function createPane (pane) { // logic to create pane var proto = Object.create(this.paneList); $.extend(paneProto, pane); return paneProto; } Panes.prototype.initialize …

5
OOP : 클래스 기반 디자인이 인터페이스 기반 디자인보다 나은 상황은 무엇입니까?
JDOM의 웹 사이트를 읽고있었습니다 . JDOM API가 인터페이스가 아닌 구체적인 클래스로 정의되는 이유는 무엇입니까? Jason Hunter는 JDOM 용 인터페이스 기반 API에 대한 인수를 요약합니다. 인터페이스가 모든 것이 공장이되면서 요소를 방금 추가하는 대신 새 문서로 '가져와야'하고 장기 직렬화와 같은 기능을 보장 할 수 없으며 목록이 계속됩니다. 실제로 인터페이스부터 시작했습니다. 일부 동료들에 …

4
정적 메소드를 통해 객체를 전달하는 것이 유리한 이유는 무엇입니까?
정적 메소드를 사용하고 오브젝트에 대한 메소드를 호출하는 대신 오브젝트에 대한 참조를 매개 변수로 전달하는 이점이있는 이유는 무엇입니까? 내가 의미하는 바를 명확히하기 위해 다음 클래스를 고려하십시오. public class SomeClass { private double someValue; public SomeClass() { // Some constructor in which someValue is set } public void incrementValue() { someValue++; } …

4
메서드 이름을 바꾸면 캡슐화를 유지할 수 있습니까?
getter / setter가 정당화되는 시점에 대해이 페이지를 읽고 OP는 다음 코드 샘플을 제공했습니다. class Fridge { int cheese; void set_cheese(int _cheese) { cheese = _cheese; } int get_cheese() { return cheese; } } void go_shopping(Fridge fridge) { fridge.set_cheese(fridge.get_cheese() + 5); } 허용 응답 상태 : 그런데, 귀하의 예제에서, 나는 클래스 …

6
객체가 변경 가능한 경우 함수형 프로그래밍의 맥락에서 무엇이 잘못 될 수 있습니까?
불변 객체와 같은 불변 객체와 불변 객체의 이점은 공유 및 쓰기 가능한 상태로 인해 다중 스레드 프로그래밍 문제를 해결하는 데 많은 어려움을 겪는 것을 볼 수 있습니다. 반대로, 가변 객체는 매번 새로운 사본을 생성하지 않고 객체의 신원을 처리하는 데 도움이되므로 특히 큰 객체의 성능 및 메모리 사용량을 향상시킵니다. 내가 이해하려고하는 …

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