我有一个接口
public interface IMyInterf
{
void proc();
}
一个实现这个接口的类
public class MyClass:IMyInterf
{
public void proc()
{
//
}
}现在我设计了一个组件,想封装MyClass,但是不想使用组合方式把MyClass变为这个组件的成员,我想这么声明这个组件:
让这个组件继承自IMyInterf,但是因为我已经有了一个实现接口的类MyClass,我打算让这个组件继承接口IMyInterf之后,告诉这个组件,所有在IMyInterf规定的方法已经委托给MyClass实现了,去调用MyClass的对应方法即可。
说白了,组件其实是MyClass的一个Facade,以前在Delphi中可以使用implements关键字完成,在C#中(包括C#4.0)如何实现,谢谢
public interface IMyInterf
{
void proc();
}
一个实现这个接口的类
public class MyClass:IMyInterf
{
public void proc()
{
//
}
}现在我设计了一个组件,想封装MyClass,但是不想使用组合方式把MyClass变为这个组件的成员,我想这么声明这个组件:
让这个组件继承自IMyInterf,但是因为我已经有了一个实现接口的类MyClass,我打算让这个组件继承接口IMyInterf之后,告诉这个组件,所有在IMyInterf规定的方法已经委托给MyClass实现了,去调用MyClass的对应方法即可。
说白了,组件其实是MyClass的一个Facade,以前在Delphi中可以使用implements关键字完成,在C#中(包括C#4.0)如何实现,谢谢
delegate void DataDelegate(object sender, StringEventArgs e);
这样就可以交给具体的事件啊,什么的去解决了。
{
IMyInterf itfObj; //构造函数
//在创建Component对象的时候,参数传递一个MyClass 的对象进来。
Component(IMyInterf _itf)
{
this.itfObj = _itf;
}
//调用
public void SomeMethod()
{
//这里就可以使用itfObj了
}
}
-----
很奇怪,既然你自己知道是一个类似的Facade模式,你自己怎么会不知道如何实现?