2013-09-02 2 views
3

내가하는 거의 모든 프로젝트에서 상속 때문에 작성해야하는 코드의 양을 줄이기 위해 객체를 추상화 할 수는 없습니다. 그러나, 나는 이것이 어떤면에서 나쁜 습관이라는 느낌을 멈출 수 없다.좋은 추상화 사용

예를 들어, 현재 작업중인 게임의 경우 동적 코딩이 필요합니다. 플레이어가 타일을 세우거나 클릭하면 어떤 동작이 발생하지만 게임의 모든 블록에 대해 클래스를 만드는 것은 어리석은 짓이라 생각합니다. 대신 타일이 실행될 추상 run() 메서드를 사용하여 추상 Action 클래스를 만들었습니다 온 트리거.

추상화를 올바르게 사용하고 있습니까? 아니면 추상적으로 너무 많은 것을 만들기위한 성능과 같은 결과가 있습니까?

추상 클래스가 무엇인지 알고 있습니다. 이 질문은 프로그램의 가독성과 디버깅 모두에서 제어 상태를 유지하는 것과 프로그램을 느리게하지 않는 것 (가능한 경우)입니다. 또한이 질문은 모든 OOP 언어를 대상으로하고 있으며, 추상과 같은 키워드에 대해서는 알지 못합니다.

+1

질문이 저장 될 수 있습니다. 범위를 좁힐 수 있습니다. 대신에 여러 클래스를 작성하는 것보다 추상화를 선택하는 이유 또는'run() '을 호출하는 기본 클래스를 만드는 것이 좋은 아이디어 인 이유를 묻는다면 유용 할 것입니다. Google이 추상화를 좋아한다는 부분을 추가하면 신호 대 잡음 비율이 상당히 낮아집니다. – Makoto

+1

이것은 특별한 문제는 아니며 적절한 방법으로 대답 할 수도 없습니다. 여기에 정확히 무엇이 요구되고 있는지 명확하지 않습니다 ... 그것은 주로'Action' 클래스의 구체적인 구현에 관한 것입니까? 당신이 언급 한 것보다 추상화를 더 잘 사용한다는 구체적인 예를 사람들이 기대하기를 기대하십니까? ... – LihO

+0

"추상적 인 클래스를 구현하는 것이 현명한 일"이라고 해석 할 수도 있습니다. 실제로는 너무 광범위합니다. – LihO

답변

1

추상화를 사용하는 경우에 대한 간단한 대답은 기본 구현을 원할 때 추상 클래스를 사용하는 것입니다.

그래서 모든 클래스를 확장하면 추상 메소드와 멤버 만 구현해야하며, 원하는 경우 재정의 할 수있는 추상 클래스의 다른 메소드의 기본 구현을 갖습니다.

+0

왜 downvote ????? –

+0

나는 OP가 C와 java와 약간 혼동되어서 질문에 대한 아주 간단한 답을 주려고 노력했다 !!! –