«object-oriented» 태그된 질문

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

17
개인 필드가있는 이유는 무엇입니까?
private클래스 필드 / 속성 / 속성 의 가시성 이 유용합니까? OOP에서 조만간 클래스의 서브 클래스를 만들게되며이 경우 구현을 완전히 이해하고 수정하는 것이 좋습니다. 클래스를 서브 클래 싱 할 때 가장 먼저하는 일 중 하나는 private메서드를 로 변경하는 것 protected입니다. 그러나,에서 세부 사항을 숨기고 외부 세계하는 것은 중요합니다 - 그래서이다 우리가해야 …

23
불변 객체가 좋은 경우 왜 사람들이 가변 객체를 계속 생성합니까? [닫은]
불변의 객체 ¹가 좋고 간단하고 동시 프로그래밍에서 이점을 제공하는 경우 프로그래머가 왜 가변적 인 객체를 계속 만드는가? Java 프로그래밍에 4 년의 경험이 있으며 클래스를 만든 후 사람들이 IDE에서 getter 및 setter를 생성하는 것이 가장 중요합니다 (따라서 변경 가능). 인식이 부족하거나 대부분의 시나리오에서 가변 객체를 사용하여 벗어날 수 있습니까? ¹ 불변 …

14
Java에서 객체 생성을 피해야합니까?
동료에게 Java 객체 생성에서 수행 할 수있는 가장 비싼 작업이라고 들었습니다. 따라서 가능한 한 적은 수의 객체를 만드는 것으로 결론을 내릴 수 있습니다. 이것은 객체 지향 프로그래밍의 목적을 다소 어기는 것 같습니다. 객체를 만들지 않으면 최적화를 위해 하나의 긴 클래스 C 스타일을 작성하고 있습니까?

2
패키지 이름은 단수 또는 복수 여야합니까?
종종 라이브러리에서 패키지에는 단일 개념을 중심으로 구성된 클래스가 포함되어 있습니다. 예 : XML, SQL, 사용자 설정, DB . 우리 모두이 패키지가 단수로 정확하다고 생각합니다 . com.myproject. xml .Element com.myproject. sql .Connection com.myproject. 사용자 . 사용자 com.myproject . 사용자 .UserFactory 그러나 실제로 작업, 규칙, 처리기, 모델 등과 같은 단일 유형의 구현 …

15
개인 변수가 필요한 이유는 무엇입니까?
클래스에 개인 변수가 필요한 이유는 무엇입니까? 내가 읽은 프로그래밍에 관한 모든 책은 이것이 개인 변수라고 말합니다. 이 설명의 문구는 항상 우리가 직업에 대한 신뢰의 위기가있는 것처럼 보였다. 설명은 항상 다른 프로그래머가 코드를 망치는 것처럼 들립니다. 그러나 개인 변수가없는 많은 프로그래밍 언어가 있습니다. 개인 변수는 무엇을 방지하는 데 도움이됩니까? 특정 재산이 …

9
집계 대 구성
OOP의 구성이 무엇인지 이해하지만 집계가 무엇인지에 대한 명확한 아이디어를 얻을 수 없습니다. 누군가 설명 할 수 있습니까?

16
게터와 세터가 정당화되는시기
게터와 세터는 종종 적절한 OO가 아니라고 비판합니다. 반면에 내가 본 대부분의 OO 코드에는 광범위한 게터와 세터가 있습니다. 게터와 세터는 언제 정당화됩니까? 그것들을 사용하지 않으려 고합니까? 그들은 일반적으로 남용됩니까? 좋아하는 언어에 속성 (광산)이있는 경우 이러한 질문은이 질문에 대한 게터 및 세터로 간주됩니다. 그것들은 OO 방법론 관점에서 똑같습니다. 그들은 더 좋은 구문을 …

14
“상속보다 선호되는 구성”이라는이 개념은 어디에서 왔습니까?
지난 몇 달 동안, "상속에 대한 선호 구성"이라는 진언은 아무데도 생겨나 고 프로그래밍 커뮤니티 내에서 거의 일종의 밈이 된 것 같습니다. 그리고 그것을 볼 때마다 조금 미스터리합니다. 누군가가 "해머보다 드릴을 선호한다"고 말한 것과 같습니다. 내 경험상 구성과 상속은 서로 다른 유스 케이스를 가진 두 가지 도구이며, 상호 교환 가능하고 하나가 …

8
소프트웨어 산업에서 나쁜 프로그래밍 관행이 일반적입니까? [닫은]
방금 한 달 전에 소프트웨어 개발자로 첫 직장을 시작했습니다. OOP, SOLID , DRY , YAGNI, 디자인 패턴, SRP 등에 대해 배운 모든 것은 창 밖으로 던져 질 수 있습니다. 그들은 C # .NET Webforms를 사용하고 거의 객체가 아닌 외부 클래스가 거의없는 Code Behind 내의 거의 모든 것을 수행합니다. 사용자 지정 …

17
반환 값이없는 함수 / 메소드에서 NULL 또는 빈 값을 반환하는 것이 더 낫습니까?
나는 여기에 추천을 찾고 있습니다. 반환 값이 없거나 확인할 수없는 경우 NULL 또는 빈 값을 메서드에서 반환하는 것이 더 나은지 여부에 어려움을 겪고 있습니다. 다음 두 가지 방법을 예로 들어 보겠습니다. string ReverseString(string stringToReverse) // takes a string and reverses it. Person FindPerson(int personID) // finds a Person with a …

14
이상적인 방법 길이는 얼마입니까? [닫은]
객체 지향 프로그래밍에서는 물론 메소드의 최대 길이에 대한 정확한 규칙은 없지만 여전히이 두 따옴표가 서로 약간 모순되는 것을 알았으므로 귀하의 생각을 듣고 싶습니다. 에서 클린 코드 : 애자일 소프트웨어 장인의 수첩 , 로버트 마틴은 말합니다 : 함수의 첫 번째 규칙은 작아야한다는 것입니다. 함수의 두 번째 규칙은 그보다 작아야한다는 것입니다. 기능은 …

6
"비즈니스 로직"이란 무엇입니까?
PHP로 시작한 2009 년부터 웹 개발을하고 있습니다. ASP.NET으로 옮길 때이 "비즈니스 로직"과 "비즈니스 규칙"에 중점을 둔 DDD와 OOAD에 대해 많이 들었습니다. 요점은 지금까지 개발 한 모든 앱이 CRUD 작업에 관한 것이며 실제로는 이런 것을 본 적이 없다는 것입니다. 나는 실제로 그 것들이 실제로 무엇을 할 수 있는지 상상할 수 없습니다. …

12
TDD를 수행 할 때 개인용 메소드를 피해야합니까?
지금 막 TDD를 배우고 있습니다. 개인 API는 테스트 할 수 없으며 공개 API가 객체의 무결성을 확인하기에 충분한 정보를 제공하기 때문에 걱정할 필요가 없다는 것을 이해합니다. 한동안 OOP를 이해했습니다. 개인 메소드가 객체를보다 캡슐화하여 변경 및 오류에 더 강하게 만든다는 것을 이해합니다. 따라서 기본적으로 사용되어야하며 클라이언트에게 중요한 방법 만 공개해야합니다. 글쎄, 개인 …

17
캡슐화는 여전히 OOP가 서있는 코끼리 중 하나입니까?
캡슐화는 모든 또는 거의 모든 필드를 비공개로 만들고 getter / setter에 의해 노출되도록 지시합니다. 그러나 이제는 Lombok 과 같은 라이브러리가 나타나서 하나의 짧은 주석으로 모든 개인 필드를 노출 할 수 @Data있습니다. 모든 개인 필드에 대한 게터, 세터 및 설정 생성자를 만듭니다. 누군가 나에게 모든 분야를 비공개로 숨기고 그 이후에 여분의 …

13
가능한 경우 지역 변수를 제거해야합니까?
예를 들어 Android에서 CPU를 켜려면 다음과 같은 코드를 사용할 수 있습니다. PowerManager powerManager = (PowerManager)getSystemService(POWER_SERVICE); WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "abc"); wakeLock.acquire(); 하지만 지역 변수를 생각 powerManager하고 wakeLock제거 할 수있다 : ((PowerManager)getSystemService(POWER_SERVICE)) .newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "MyWakelockTag") .acquire(); iOS 경보보기에 유사한 장면이 나타납니다. 예 : from UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"my title" message:@"my …

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