기존 (고정) 클래스가 새 인터페이스를 구현할 수 있습니까?
-
06-07-2019 - |
문제
나는 사람들이 줄 대답을 이미 알고있는 느낌이 들지만, 여기서 간다 :
내가 새로운 수업을 쓰고 있다고 말하면, 그것을 부르자 PooledQueue<T>
, 제작자에서 인터페이스를 구현하는 인수를 받아들이고 싶습니다. IResourcePool<T>
. 여기서 아이디어는 저에게 속성/방법을 제공하는 한 기본 수영장 객체를 사용하는 것이 좋습니다. IResourcePool<T>
(인터페이스 뒤에있는 전체 아이디어가 맞습니까?).
그러나 있다면 이미 모든 기능을 제공하는 클래스 IResourcePool<T>
, 그렇지 않은 것을 제외하고 구현하다 IResourcePool<T>
(그리고 소스 코드를 수정할 수 없습니다), 구현을 강요 할 수있는 방법이 있습니까?
사람들이 대답하기를 기대하는 것은 필요한 인터페이스를 구현하는 기존 클래스를위한 래퍼를 만들어야한다는 것입니다. 그러나 나는 단지 이것을 할 수있는 것을 선호합니다.
// GetDataPool returns an object of type Pool<Data> that I can't modify
var q = new PooledQueue<Data>(GetDataPool());
대신 :
var q = new PooledQueue<Data>(new PoolWrapper<Data>(GetDataPool()));
클래스의 인터페이스 구현이 클래스 정의와 별도로 정의 될 수 있는지 여부는 내가 정말로 유용 할 것이라고 생각합니다. 다른 테이블의 ID와 엔티티를 연결하는 협회 테이블과 함께 잘 설계된 데이터베이스가 구조화되는 방식입니다. 말이 돼?
제휴하지 않습니다 StackOverflow