|
Programmazione Avanzata Primo Semestre 2005/2006 |
|---|
// Pippo.idl
interface Pippo {
attribute int X;
int Foo();
void Bar(int x, int y, int z);
float FooBar(double y);
};
Una interfaccia contiene signature di metodi o di attributi. Ad un attributo corrisponde la definizione di due metodi per accedere/modificare l'attributo.
Ad esempio il codice generato per l'interfaccia precendete dovrà essere simile al seguente:
// Pippo.cs
public class Pippo {
private int _X;
public int GetX() { return _X; }
public void SetX(int X) { _X = X; }
public int Foo() { /*code here*/ }
public void Bar(int x, int y, int z) { /*code here*/ }
float FooBar(double y) { /*code here*/ }
}
// IPippo.cs
public interface IPippo {
private int _X;
public virtual int GetX();
public virtual void SetX(int X);
public virtual int Foo()
public virtual void Bar(int x, int y, int z);
float virtual FooBar(double y);
}
// Pippo.cs
public class Pippo : IPippo {
private int _X;
public int GetX() { return _X; }
public void SetX(int X) { _X = X; }
public int Foo() { /*code here*/ }
public void Bar(int x, int y, int z) { /*code here*/ }
float FooBar(double y) { /*code here*/ }
}
// PippoFactory.cs
public class PippoFactory : IClassFactory {
public IPippo CreateInstance() {
return (IPippo)new Pippo();
}
static IClassFactory GetClassObject() {
return thePippoFactory;
}
static PippoFactory thePippoFactory = new PippoFactory();
}