프로젝트를 진행하다보니 문득 궁금한 점이 생겼다. final
키워드를 사용해 class 구현했는데, MVVM 패턴 때문이라고 생각했다.
하지만 final class
를 사용하는 이유는 MVVM 패턴과는 직접적인 연관이 있는 것은 아니고, 주로 기술적이거나 성능적인 이유 때문이라고 한다.
MVVM 패턴과는 직접적인 연관이 없지만, 코드 작성 시 의도를 명확히 하고 성능을 개선하는 데 도움을 준다고 한다.
final
사용하는 주요 이유final
키워드는 클래스가 상속되지 못하도록 제한한다.final
을 사용하는 것이 안전하다.final
키워드를 사용하면 컴파일러가 클래스의 메서드 호출을 더 빠르게 최적화할 수 있다.final class
에서는 상속이 불가능하므로 정적 디스패치를 사용할 수 있다. 이를 통해 성능이 향상된다.final
을 사용하면 개발자에게 이 클래스는 더 이상 확장되지 않을 것임을 명확히 전달한다.final
키워드를 자주 사용하게 된다.final
을 쓰지 않아야 할까?BaseViewModel
)final
키워드는 MVVM을 사용하기 때문이 아니라, 클래스가 상속될 필요가 없고 성능과 코드 안정성을 고려할 때 사용하는 것입니다. MVVM에서는 ViewModel이 상속이 필요 없는 독립적인 역할을 수행하므로, 자연스럽게 final
을 사용하는 사례가 많아지는 거라구 한다.