关于接口的一个问题。。

jmtbai 2009-04-16 11:07:11
IFriendLink接口;DataAccess.CreateFriend()运用反射创建了一个类,此类继承自接口IFriendLink。。这种方式是什么原理呢?friendLink是接口实例?此接口实例有什么作用?是否代表着调用接口方法就等于是直接调后面创建出的类的方法?什么原理?有点迷糊。。。。
...全文
64 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
jmtbai 2009-04-23
  • 打赏
  • 举报
回复
恩,这个应该就是面向对象多态的一个体现吧。。结帖
人生就是赌 2009-04-17
  • 打赏
  • 举报
回复
程序中运行的是实例
接口不能作为实例,但是可以定义规范,由类去实现
一个是规范,一个是实例,有点像:
“飞”这个动作 与“鸟”的关系,“飞”这个动作可以由鸟来实现
而鸟可以去实现,羊就不能实现飞的动作吧,因为羊不能继承飞的动作
我的理解程度也就到这里了
jmtbai 2009-04-16
  • 打赏
  • 举报
回复
越讲越复杂,用法我基本上明白的,就是感觉东西理不顺。。。
private static readonly IFriendLink friendLink = DataAccess.CreateFriendLink(); //这句为什么可以这样用?

人生就是赌 2009-04-16
  • 打赏
  • 举报
回复

private static readonly IFriendLink friendLink = DataAccess.CreateFriendLink();

此句中的DataAccess.CreateFriendLink()是一个实例
例如:

/// <summary>
/// 利用单例模式创建数据层实例
/// </summary>
public sealed class DataAccess
{
private static GuanBar.IDAL.IDataFunction singletonInstance = null;
private static readonly object thislock = new object();
private static readonly string dataNameSpace = "GuanBar.SQL2005DAL";
//private static readonly string dataNameSpace = ConfigurationManager.AppSettings["DAL"];
private DataAccess(){}
static DataAccess()
{
CreateInstance();
}
public static GuanBar.IDAL.IDataFunction CreateInstance()
{
string className = dataNameSpace + ".DataFunction";
if (singletonInstance == null)
{
lock (thislock)
{
if (singletonInstance == null)
singletonInstance = (GuanBar.IDAL.IDataFunction)System.Reflection.Assembly.Load(dataNameSpace).CreateInstance(className);
}
}
return singletonInstance;
}
}
/// <summary>
/// 利用单例模式创建数据层实例
/// </summary>
public sealed class DataAccess1
{
private static readonly string dataNameSpace = ConfigurationManager.AppSettings["DAL"];
private DataAccess1() { }
public static GuanBar.IDAL.IDataFunction myInstance()
{
string className = dataNameSpace + ".DataFunction";
return (GuanBar.IDAL.IDataFunction)System.Reflection.Assembly.Load(dataNameSpace).CreateInstance(className);
}

}
jmtbai 2009-04-16
  • 打赏
  • 举报
回复
额,忘了把原句加上了
private static readonly IFriendLink friendLink = DataAccess.CreateFriendLink();
这句有点理解不了。。

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧