2010-02-27 4 views
4

내가 인터페이스에 넣은 세부 사항이 적 으면 덜 재사용 할 수 있습니다. 반면에 더 적은 세부 사항은 더 미묘하고 쓸모없는 것으로 보인다. 다양한 상황에서이를 어떻게 평가할 것인가에 대한 표준 권고안이 있습니까?인터페이스가 얼마나 세분화되어야하는지 판단하십시오.

+0

+1 http://stackoverflow.com/questions/427659/going-bananas-with-loose-coupling-and- dependency-injection –

답변

0

구성 요소의 입도 (크기)에 관한 논문을 공동 저술 한 결과, "올바른 것"을 결정하는 간단한 방법이 없다는 결론을 내 렸습니다. 따라서 표준적인 권장 사항이 없습니다.

난 당신이 관심 단지 경우에 당신에게 주제에 대한 학문적 참조 몇 줄 수 있습니다. (EDS)

  • Genero, M., Piattini, M., 칼레, C를 : 메트릭 소프트웨어 개념 모델. 임페리얼 컬리지 프레스, 런던, 영국 (2005)
  • 셰이크 호프, V.A .: 품질 개념화에 대해. 개념 모델링에 Dagstuhl 세미나에서 발표 된 논문, 2008 4월 27일에서 30일까지 (컨퍼런스 웹 사이트에서 프리 프레스) (2008)
0

는 클래스와 인간 게놈을 고려하십시오.

각 인스턴스 (셀 객체)는 게놈의 모든 기능을 사용할 수 있습니다. (모든 세포 개체가 모든 기능에 액세스 할 수있는 것은 아니며, 줄기 세포는 제외).

많은 기능을 수행하려고하는 단일 클래스의 인스턴스가 여러 개 있고, 각 클래스가 하나의 기능을 수행하는 대신 여러 클래스를 사용했기 때문에이 지점을 표시합니다.

성을 만들기 위해 지침이 인코딩 된 모래알에 해당합니다. Evolution은 버그를 해결하기 위해 수십억 년의 이익을 얻었습니다. 엔지니어는이 작업을 수행 할 용량이나 시간이 없습니다.

+0

글쎄, 우리는 진화의 "최후에"있지 않습니다. . :-) 아직 "벌레"가 있고, 진화가 여전히 효과가 있습니다 ... 제 요점은 ... 당신은 무엇을 의미합니까? – CesarGon

+0

요점은 많은 디자이너들이 부엌 싱크대를 수업에 부어 넣기로 결정하고 너무 세분화되기 때문입니다. IE, grain_of_sand.build_castle() – dar7yl

+0

나는 모든 버그가 유전학에서 벗어 났다고 결코 주장하지 않았다. Natural Selection은 유해한 버그를 제거하고 그다지 중요하지 않은 것들을 가려 낼 시간이 충분합니다. – dar7yl

2

저는 솔리드 원칙을 잘 알고 있습니다. 솔리드 (SOLID)의 "I"는 고객이 필요로하지 않거나 사용하지 않는 인터페이스를 구현하도록 강요해서는 안된다는 사실을 믿게합니다. 즉, 추상 클래스 또는 인터페이스를 사용하는 경우 구현 자에게 신경 쓰지 않는 부분을 구현해서는 안됩니다.

레이 휴스턴은 (회원 공급자를보고) 그것에 좋은 기사를 썼습니다. here.

관련 문제