«object-oriented» 태그된 질문

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

10
사용자 정의 객체를 매개 변수로 사용하지 않아야합니까?
사용자 정의 객체 Student 가 있다고 가정합니다 . public class Student{ public int _id; public String name; public int age; public float score; } 그리고 학생의 정보를 표시하는 데 사용되는 Window 클래스 는 다음과 같습니다. public class Window{ public void showInfo(Student student); } 그것은 정상적인 것처럼 보이지만 Window 는 함수를 …

9
"말하고 묻지 말 것"이 어떻게 좋은 OO로 간주되는지에 대한 설명
이 블로그 게시물 은 여러 업 보트와 함께 Hacker News에 게시되었습니다. C ++에서 나온 대부분의 예제는 내가 배운 것과 반대되는 것 같습니다. 예 # 2와 같은 : 나쁜: def check_for_overheating(system_monitor) if system_monitor.temperature > 100 system_monitor.sound_alarms end end 대 좋은 : system_monitor.check_for_overheating class SystemMonitor def check_for_overheating if temperature > 100 sound_alarms …

8
LSP vs OCP / Liskov 교체 VS Open Close
나는 OOP의 SOLID 원칙을 이해하려고 노력하고 있으며 LSP와 OCP는 비슷한 점이 더 많다는 결론에 도달했습니다. 개방 / 폐쇄 원칙은 "소프트웨어 엔티티 (클래스, 모듈, 기능 등)는 확장을 위해 개방되어야하지만 수정을 위해 폐쇄되어야한다"고 명시하고 있습니다. 간단히 말해서 LSP는 Foo모든 인스턴스 Bar가 파생 된 인스턴스로 대체 될 수 있으며 Foo프로그램은 동일한 방식으로 작동 …

3
인스턴스 또는 정적 도우미 메소드 중 어떤 것이 더 나은 방법입니까?
이 질문은 주관적이지만 대부분의 프로그래머가 어떻게 접근하는지 궁금합니다. 아래 샘플은 의사 C #이지만 Java, C ++ 및 기타 OOP 언어에도 적용됩니다. 어쨌든 내 클래스에서 도우미 메서드를 작성할 때 도우미 메서드를 정적으로 선언하고 도우미 메서드에 필요한 경우 필드를 전달하는 경향이 있습니다. 예를 들어 아래 코드가 주어지면 Method Call # 2 사용하는 …

3
클래스 기반 OOP에 비해 프로토 타입 기반 OOP의 장점은 무엇입니까?
클래스 기반 언어와 관련하여 주로 OOP를 처리 한 후 Javascript 프로그래밍을 처음 시작했을 때 프로토 타입 기반 OOP가 클래스 기반 OOP보다 선호되는 이유에 대해 혼란스러워했습니다. 프로토 타입 기반 OOP를 사용하는 경우 구조적 이점은 무엇입니까? (예를 들어 특정 응용 프로그램에서 더 빠르거나 적은 메모리 집약적이라고 생각합니까?) 코더의 관점에서 장점은 무엇입니까? (예 …

2
앨런 케이는 스몰 토크 초기 역사에서“할당”이란 무엇을 의미 했는가?
나는 스몰 토크의 초기 역사를 읽었 으며 그 의미에 대한 나의 이해에 의문을 갖게하는 "할당"에 대한 몇 가지 언급이있다. OOP는 많은 동기에서 비롯되었지만 두 가지가 중심이었습니다. 대규모는 세부 사항 숨기기와 관련된 복잡한 시스템을위한 더 나은 모듈 체계를 찾고 소규모는보다 유연한 할당 버전을 찾은 다음이를 완전히 제거하려고했습니다. ( 1960-66 년 ~ …

3
빈혈 도메인 모델이 C # / OOP에서는 좋지 않은 것으로 간주되지만 F # / FP에서는 매우 중요한 이유는 무엇입니까?
재미와 이익을위한 F # 의 블로그 게시물 에서 다음과 같이 말합니다. 기능적 디자인에서는 데이터와 동작을 분리하는 것이 매우 중요합니다. 데이터 유형은 단순하고 "멍청하다". 그리고 따로 따로, 이러한 데이터 유형에 작용하는 많은 기능이 있습니다. 이것은 동작과 데이터가 결합되는 객체 지향 디자인과 정반대입니다. 결국, 그것이 바로 클래스입니다. 실제로 객체 지향 디자인에서는 동작 …


9
유해한 것으로 간주되는 반품? 코드가 없으면 코드가 작동 할 수 있습니까?
좋아, 제목은 약간의 clickbaity이지만 진지하게 말하고 있습니다. 잠시 동안 킥을 요구하지 마십시오 . 방법이 객체 지향 방식 으로 메시지 로 사용되도록 장려하는 방법이 마음에 듭니다. 그러나 이것은 내 머릿속에서 괴롭히는 잔소리가 있습니다. 잘 작성된 코드가 동시에 OO 원칙과 기능적 원칙을 따를 수 있다고 생각합니다. 나는 이러한 아이디어를 조정하려고 노력하고 있으며 …

8
게터와 세터 안에 무엇이 허용되어야합니까?
나는 getter와 setter 메소드와 캡슐화에 관한 흥미로운 인터넷 논쟁에 들어갔다. 누군가는 "순결한"상태를 유지하고 캡슐화를 보장하기 위해 할당 (세터) 또는 가변 액세스 (게터) 만해야한다고 말했다. 이것이 처음에는 게터와 세터를 갖는 목적을 완전히 잃고 검증과 다른 논리 (이상한 부작용없이)가 허용되어야한다는 것이 맞습니까? 언제 검증이 이루어져야합니까? 값을 설정할 때 setter 내부에서 (객체가 잘못된 …

8
OOP 이전에는 데이터 구조 멤버가 공개 상태로 유지 되었습니까?
데이터 구조 (예 : 큐)가 OOP 언어를 사용하여 구현되는 경우 데이터 구조의 일부 멤버는 개인용 (예 : 큐의 항목 수)이어야합니다. 대기열은에서 struct작동 하는 및 함수 집합을 사용하여 절차 언어로 구현할 수도 있습니다 struct. 그러나 절차 적 언어에서는 struct개인 회원을 만들 수 없습니다 . 절차 적 언어로 구현 된 데이터 구조의 …

3
하위 클래스와 하위 유형의 차이점은 무엇입니까?
Liskov 대체 원리에 대한 이 질문 에 대한 최고 등급의 답변 은 하위 유형 과 하위 클래스 라는 용어를 구별하기 위해 고통을받습니다 . 또한 일부 언어는 두 언어를 혼동하는 반면 다른 언어는 그렇지 않다는 점을 지적합니다. 내가 가장 친숙한 객체 지향 언어 (Python, C ++)에서 "유형"과 "클래스"는 동의어 개념입니다. C …

11
오류 변수는 안티 패턴 또는 좋은 디자인입니까?
실행을 중단해서는 안되는 몇 가지 가능한 오류를 처리하기 위해 error클라이언트가 확인하고 예외를 throw하는 데 사용할 수 있는 변수가 있습니다. 안티 패턴입니까? 이것을 처리하는 더 좋은 방법이 있습니까? 이에 대한 예제는 PHP의 mysqli API를 볼 수 있습니다 . 가시성 문제 (접근 자, 공용 및 개인 범위, 클래스 또는 전역 변수)가 올바르게 …


1
프로그래머가 왜 Acme를 패키지, 네임 스페이스 또는 디렉토리 이름으로 사용합니까?
이것은 어리석은 질문 일 수도 있고 아닐 수도 있지만, 한동안 나를 귀찮게 한 것에 대한 대답을 정말로 알고 싶습니다. 프로그래머가 acme물건을 넣으 라는 디렉토리를 만든 프로그래밍 예제 / 컨벤션을 자주 볼 수 있습니다. 무슨 Acme뜻입니까? 왜 Emme 또는 다른 Acme가 아닌가? Acme는 기타 OOP 클래스를 그룹화하는 일반 폴더 이름과 같은 …

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