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(); }