Un progetto a cui sto lavorando ha il seguente codice per l'interfaccia Esempio:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
public interface IDeviceEssentials
{
string Model { get; set; }
string Manufacturer { get; set; }
string BIOSVersion { get; set; }
string TotalPhysicalMemory { get; set; }
string TotalVirtualmemory { get; set; }
string OSName { get; set; }
}
}
ogni altra classe che implementa questa interfaccia utilizza le proprietà Automatic che rendono inutilizzabili getter e setter, quindi l'implementazione effettiva viene ridotta a
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Test
{
public interface IDeviceEssentials
{
string Model;
string Manufacturer;
string BIOSVersion;
string TotalPhysicalMemory;
string TotalVirtualmemory;
string OSName;
}
}
Per cui è sufficiente una struttura o una classe per contenere i dati ..
L'uso principale dell'interfaccia è il polimorfismo che si avvale della sostituzione di liskov, anche se il codice precedente usa il setter getter che viene effettivamente ridotto alla decodifica variabile da tutte le classi che lo implementano (usando la proprietà automatica). Questo è che non c'è bisogno che io voglia simulare l'interfaccia di cui sopra. anche se è stato progettato come una classe, posso semplicemente prendere in giro creando una nuova classe.
Le domande sono: -
- Penso che le proprietà di cui sopra forniscano solo la rappresentazione dei dati. va bene usare l'interfaccia solo per la rappresentazione dei dati?