2012-09-02 2 views
-1
  • 유사한 방법을 결합하십시오. //my choice but I'm not sure.
  • 클래스가 응집력있는 동작 집합을 하나만 캡슐화하도록합니다.
  • 하위 클래스가 하나 뿐인 추상 클래스를 사용합니다.
  • 상속 트리를 단 두 단계로 단순화합니다.
  • 모든 클래스 변수를 단일 전용 클래스로 이동하십시오.객체 지향 디자인을 수정하는 경우 다음 중 어느 것을 수행해야할까요?

    나는 중국인이다. 열심히 공부하지만 학습 효율은 낮습니다. 여러분이 알다시피, 일반, 나는 유사한 방법을 결합 어떤 정치적인 이유

+2

3, 4 및 5는 확실히 난센스입니다. 1과 2가 일종의 의미를 만들어 낸다. –

+3

OOP에 대한 위키 피 디아의 글이 하트 비트에서 대답 할 것이다. –

+0

1 또는 2가 더 낫습니까? –

답변

0

를 들어, 우리 나라에서 위키 백과를 사용할 수 없습니다.

코드를 간소화하면 좋습니다. 당신과 비슷한 것처럼 보이는 방법은 실제로는 너무 적어서 결합하는 것보다 복잡성이 증가합니다.

클래스가 응집력있는 동작 집합 만 캡슐화하도록합니다.

이것은 좋은 목표이지만 실제로는 응용 프로그램이 아니라 간단합니다. 실제 프로그램은 각 클래스에서 최소한의 행동 집합만으로는 바람직한 것보다 많은 클래스를 생성하기 때문에 거의 달성하지 못합니다. 종종 좀 더 실용적인 해결책은 몇 가지 관련 행동을 취하는 것입니다.

하위 클래스가 하나 뿐인 경우 추상 클래스를 사용하십시오.

하위 클래스가 하나 뿐인 경우 가능한 경우 상위 클래스를 제거하는 것이 좋습니다. 관련 클래스와 상태가있는 클래스가 여러 개있을 때 추상 클래스를 사용하는 것이 더 적합합니다.

상속 트리를 단 두 단계로 단순화합니다.

상속 나무를 너무 깊게 만들지 않는 것이 좋습니다. 때로는 1, 2, 3 또는 그 이상의 깊이가있는 것이 좋습니다. JDK의 나쁜 예가 Orb 클래스입니다.

com.sun.corba.se.internal.Interceptors.PIORB extends 
com.sun.corba.se.internal.POA.POAORB which extends 
com.sun.corba.se.internal.iiop.ORB which extends  
com.sun.corba.se.impl.orb.ORBImpl which extends 
com.sun.corba.se.spi.orb.ORB which extends  
com.sun.corba.se.org.omg.CORBA.ORB which extends 
org.omg.CORBA_2_3.ORB which extends 
org.omg.CORBA.ORB 

이동 하나, 전용 클래스 모든 클래스 변수.

이것은 의미가 없습니다. 그것만으로는 바람직하지 않습니다.

+0

대단히 감사합니다! –

+0

@Difficultpeople 기억해야 할 가장 중요한 것은 a) 더 간단하고 이해하기 쉬운 코드가 더 좋다. b) 정확성이 속도보다 중요하다. –

+0

나는 그것을 기억할 것이다. –

관련 문제