科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道基础软件Visual C#插件构架实战补遗

Visual C#插件构架实战补遗

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

良好的可扩展性支持是一个软件团队在开发中变被动为主动的必要条件

作者:Jack H Hansen 来源:csdn 2007年11月13日

关键字:

  • 评论
  • 分享微博
  • 分享邮件
2. IConnectableObject

public interface IConnectable {
 // application 为插件所属的主框架对象。若为null则表示插件本身就是主框架
 ConnectionResult Connect( object application );
 ExtendibleVersionInfo VersionInfo { get; }
 void OnDestory();
 void OnLoad();
 void Run();
}

public enum ConnectionResult {
 Connection_Success ,
 Connection_Failed
}

public class ExtendibleVersionInfo {
 private ExtendibleVersionInfo() {}
 public ExtendibleVersionInfo( string name , string version , string copyright ) { // Omitted }

 public ExtendibleVersionInfo(string name,int version1,int version2,int version3,string copyright) { // Omitted }

 public int PrimaryVersion { get { return _Version1; } }
 public int SecondaryVersion { get { return _Version2; } }
 public int BuildVersion { get { return _Version3; } }
 public string Name { get { return _Name; } }
 public string VersionString { get { // Omitted } }
 public string Copyright { get { return _Copyright; } }
 private string _Name;
 private int _Version1 = 1;
 private int _Version2 = 0;
 private int _Version3 = 0;
 private string _Copyright;
 public static ExtendibleVersionInfo Empty = new ExtendibleVersionInfo();
}

  所有可连接的对象必须实现这个接口。这是所有 Application Frame Level 中类的鼻祖。

  3. IExtendible

public interface IExtendible {
 IConnectable GetLatestVersion();
 IConnectable QuerySpecifiedVersion( ExtendibleVersionInfo version );
 ExtendibleVersionInfo[] EnumerateVersions();
}

  4. 使用类工厂创建应用程序和插件的最新版本

  我们的主程序以及插件会设计成 internal class 。程序只输出一个工厂类,用户界面通过调用 IExtendible 接口的 GetLatestVersion() 方法获得这些用来完成实际任务的对象的实例,并把它们显示出来。或者,也可以枚举所有的版本,让用户来挑选所需要版本。

  5. 可扩展性

  不得不承认,这样的方式可扩展性仍不是很强。程序需要升级时同时需要修改提供给用户的工厂类(虽然接口不变)。为了实现更好的可扩展性,可以把简单工厂模式转换为工厂方法模式。

查看本文来源

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章