2011-03-25 3 views
2

그래서 고객 시스템을 생성해야하며 여러 유형의 고객이 필요하지 않습니다.나는 모든 것을 정말로 추상화해야합니까?

상속받을 인터페이스 또는 추상 클래스를 아직 생성해야합니까?

+0

언어와 관련이없는 질문은 들리지 않습니다. 확실히 당신이 무언가를 구현하는 방법은 사용 가능한 언어의 특징에 달려 있습니다. 뭐라구? – Gareth

+0

# 그것에 대해 미안합니다 – user660734

+0

프로젝트가 얼마나 큰지, 그리고 변경해야하는지 여부 (모든 이해 관계자가 작성하고 서명 한 사양 문서입니까?)에 따라 다릅니다. 며칠 만에 프로젝트를 작성할 수 있다면 그냥 해보십시오. 이것이 5 개월짜리 프로젝트라면 아키텍처에주의를 기울여야합니다. – Justin

답변

8

아니요. 추상화에 필요한 것만 추상화해야합니다. 추가 할 새로운 유형의 고객이있는 경우 언제든지 나중에 다시 돌아와 코드를 리팩토링 할 수 있습니다.

작업을 완료하는 데 필요한만큼 간단하게 디자인을 유지하십시오.

추상화가 잘 보이므로 추가하지 마십시오. 필요하지 않을 수도 있습니다. 필요한 추상화를 추가하십시오.

+0

유닛 테스팅 및 인터페이스가 구현되지 않은 코드화는 어떨까요? – user660734

+0

+1. [YAGNI (너는 필요 없어) (http://en.wikipedia.org/wiki/YAGNI)와 [KISS (Keep It Simple Stupid)] (http://en.wikipedia.org/)도 참조하십시오. wiki/KISS_principle) 원칙 –

+0

"필요가 생길 때 추상적 인 일들"의 결과로 최악의 코드는 간단하고 최선의 의도로 시작됩니다 ... 갑자기 새로운 상황이 발생하고 조건을 추가하면 리팩터링을 거친 다음 1 년 후 실효성이없는 코드와 마감 시간을 갖게 될 때까지 거기에서 내려갑니다. –

관련 문제