我的情况是我的管弦乐队班级给了IWatchService
参数来使用FilesService
类或DbService
类。 IWatchService
和FilesService
类中都使用DbService
的所有3个成员。在Orchestra类中,除了方法Watch()之外,我还希望访问那些方法,因为方法Watch()
仅应在DbService
或FilesService
类中使用,而不能在Orchestra
中使用。问题出在Orchestra
中,所有三个成员都可见使用。有没有任何解决方法可以使Watch()
在Orchestra
中不可见?
interface IWatchService
{
void Watch();
void MatchingFiles();
void RemoteFiles();
}
interface IWatchServiceFiles : IWatchService { }
interface IWatchServiceDatabases : IWatchService { }
class FilesService : IWatchServiceFiles { }
class DbService : IWatchServiceDatabases { }
class Orchestra
{
IWatchService WatchService
public Orchestra(IWatchService watchService)
{
WatchService = watchService;
}
}