«object-oriented» 태그된 질문

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


5
게터를 사용하여 상수를 피하는 것이 좋은 방법입니까?
클래스 외부에서 사용되는 상수를 게터로 바꾸는 것이 좋은 방법입니까? 예를 들어 if User.getRole().getCode() == Role.CODE_ADMIN또는 을 사용하는 것이 더 낫 if User.getRole().isCodeAdmin()습니까? 그것은이 수업으로 이어질 것입니다 : class Role { constant CODE_ADMIN = "admin" constant CODE_USER = "user" private code getRoleCode() { return Role.code } isCodeAdmin () { return Role.code …

6
인터페이스가 구체적인 형태의 구현을 상수 형태로 반환하는 메소드를 인터페이스에 포함시키는 것이 괜찮습니까?
나는 종종 다른 인터페이스의 구체적인 유형에 의존하는 구성 요소의 다른 동작이 필요한 상황에 처하게됩니다. 내 질문을 설명하기 위해 작은 코드 조각을 작성하여 의미하는 바를 보여줍니다. 이 예제에서는 동물 개체에서 음식 개체를 인스턴스화하려고합니다. interface Animal { void growl(); String getAnimalType(); //"DOG" or "FISH" } abstract class Food {} Meat extends Food …

8
순차 콜렉션이 인덱스 0 또는 인덱스 1에서 시작해야합니까?
여러 채널이있는 장치의 개체 모델을 만들고 있습니다. 클라이언트와 내가 사용하는 명사는 Channel및 ChannelSet입니다. ( "세트"는 순서가 있고 적절한 세트가 아니기 때문에 의미 적으로 정확하지 않습니다. 그러나 그것은 다른 시간에 대한 문제입니다.) C #을 사용하고 있습니다. 사용 예는 다음과 같습니다 ChannelSet. // load a 5-channel ChannelSet ChannelSet channels = ChannelSetFactory.FromFile("some_5_channel_set.json"); Console.Write(channels.Count); …



5
공유 코딩 패러다임을 사용하는 관점에서 언어 Y로 프로그램을 작성하는 것처럼 언어 X로 무언가를 작성하는 것이 왜 나쁜가?
폐쇄되었습니다 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 오년 전에 . 얼마 전에 나는 C ++로 작성된 것에 대해 SO에 대한 질문을했지만 현재 문제에 대한 답변을 얻는 대신 WIP …

4
Java가 일부 클래스에서 캡슐화를 사용하지 않는 이유는 무엇입니까?
내 질문은 클래스 와 관련 이 있습니다 (표준 라이브러리의 질문 System.in과 System.out다른 것이있을 수 있습니다). 왜 그런가요? OOP에서 그렇게 나쁜 습관이 아닙니까? 다음 System.getIn()과 같이 사용해서는 안됩니다 System.getOut(). 나는 항상이 질문을 받았으며 여기서 좋은 답을 찾을 수 있기를 바랍니다.

5
단순하지만 실제적인 웹 앱을 구축하기 위해 OOP 개념을 어떻게 적용 할 수 있습니까? [닫은]
폐쇄되었습니다 . 이 질문은 더 집중되어야 합니다. 현재 답변을받지 않습니다. 이 질문을 개선하고 싶습니까? 이 게시물 을 편집 하여 한 가지 문제에만 집중할 수 있도록 질문을 업데이트하십시오 . 휴일 3 년 전 . 잠김 . 이 질문과 주제는 주제가 다르지만 역사적 의미가 있기 때문에이 질문과 답변은 잠겨 있습니다. 현재 새로운 …

4
이미 존재하는 객체에 기능을 추가하려면 어떻게해야합니까?
일정량의 잘 정의 된 기능을 가진 인터페이스가 있습니다. 의 말을하자: interface BakeryInterface { public function createCookies(); public function createIceCream(); } 이것은 대부분의 인터페이스 구현에 효과적이지만, 몇 가지 경우 새로운 기능으로 추가하는 것과 같은 새로운 기능을 추가해야합니다 createBrownies(). 이를위한 명백하고 순진한 접근 방식은 인터페이스를 확장하는 것입니다. interface BrownieBakeryInterface extends BakeryInterface { …


4
개방 / 폐쇄 원칙 명확히
내가 설명했듯이, 공개 / 폐쇄 원칙은 한 번 작성된 코드를 수정해서는 안됩니다 (버그 수정 제외). 그러나 비즈니스 규칙이 변경되면 해당 변경을 구현하는 코드를 수정해서는 안됩니까? 나는 그 원리가 나에게 이해되지 않기 때문에 어떻게 그 원리에 대해 이해하지 못한다고 생각합니다.

10
클래스 속성이 클래스의 새 인스턴스를 만들어 반환하는 경우 안티 패턴입니까?
나는 Heading몇 가지 일을 하는 클래스를 가지고 있지만 현재 제목 값의 반대를 반환 할 수 있어야하며, 결국 Heading클래스 자체 의 새 인스턴스를 생성하여 사용해야 합니다. reciprocal현재 값의 반대 제목을 반환하기 위해 간단한 속성을 호출 한 다음 수동으로 제목 클래스의 새 인스턴스를 만들거나 제목 클래스 createReciprocalHeading()의 새 인스턴스를 자동으로 만들어서 사용자. …

5
명시 적 캐스팅 연산자를 사용하는 것이 합리적입니까 아니면 나쁜 해킹입니까?
나는 큰 물건을 가지고있다 : class BigObject{ public int Id {get;set;} public string FieldA {get;set;} // ... public string FieldZ {get;set;} } 특수한 DTO와 유사한 객체 : class SmallObject{ public int Id {get;set;} public EnumType Type {get;set;} public string FieldC {get;set;} public string FieldN {get;set;} } 개인적으로 BigObject를 SmallObject로 명시 …

10
OOP에서 순환 참조가 필요한이 실제 활동을 모델링하는 올바른 방법은 무엇입니까?
순환 참조에 대한 Java 프로젝트의 문제로 씨름하고 있습니다. 문제의 객체가 상호 의존적이며 서로에 대해 알아야 할 실제 상황을 모델링하려고합니다. 이 프로젝트는 보드 게임을하는 일반적인 모델입니다. 기본 수업은 비 특정이지만 체스, 주사위 놀이 및 기타 게임의 세부 사항을 다루기 위해 확장됩니다. 나는 11 년 전에 이것을 십여 개의 다른 게임으로 애플릿으로 …

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