, - . - , , .
-, , , , - , , SO Scott Wisniewsi ( ) , .
MSDN, CA1040, , , t .
- , , , Microsoft - - , , ( , ), MS ' . ", ".
, , , " " , , :
public interface IReadsAResource
{
public byte[] Read(string id);
}
public interface IWritesAResource
{
public string Write(byte[] resource);
}
, , , :
public class NeedsRead
{
private readonly IReadsAResource Reader;
public NeedsRead(IReadsAResource reader){ Reader = reader; }
}
public class NeedsWrite
{
private readonly IWritesAResource Writer;
public NeedsWrite(IWritesAResource writer){ Writer = writer; }
}
, , ResourceReaderWriter, , , , , - :
var needsRead = new NeedsRead(new ResourceReaderWriter());
var needsWrite = new NeedsWriter(new ResourceReaderWriter());
, , ? :
public class NeedsReadAndWrite{
public NeedsReadAndWrite(IReadsAResource reader, IWritesAResource writer){
}
}
, , :
- , , ; , . , .
- , , , , , . .
, , , :)
, :
public interface IReadsAndWritesAResource : IReadsAResource, IWritesAResource
{
}
public class NeedsReadAndWrite{
public NeedsReadAndWrite(IReadsAndWritesAResource readerWriter){
}
}
.
, , .
, , , , , .