编程模式以在c#

时间:2016-12-09 00:10:45

标签: c# .net design-patterns

这并不是一个正确或错误的答案,我只是在寻找想法,意见或其他经验。

我想在c#中这样做。 Dotnet Core。

这不是我想要做的,但它是一个更好的例子,我可以从中推断出来。

让我们说我想编写一个简单的控制台应用程序来解压缩文件。

你可以做(​​ish)注意:这比我的真实程序简单得多。

main 
{
    switch(algo)
    {
       case "zip":
           zip();

       case "rar":
           rar();
    }

    byte[] zip() 
    {
        blah;
    }

etc. etc.

}

现在忽略继承/接口等,这太硬编码了。

让我们说我想这样做,但我的主控制台程序没有解释它只需要相同的输入/输出方法等的解码。

它只是:

Interface Decode {...........................................

main
{
    make a file whatever  < byte[] Decode something thats passed to me();
}

但技巧是解码部分由分别编写和编译的代码完成并发布主程序。

文件夹结构:

\MyMain.exe (arguments passed as to what to decode)
\Decoders\rardecode.dll  Though note this is for .NET Core
          or rardecode.obj (maybe) 
          or rardecode.cs(compiled as needed) 

          zipdecode.dll  
          or zipdecode.obj .....

但是这个想法是可以添加到解码目录中的任何东西(使用相同的语言c#),它在某种接口之后单独编译(或不编译)(如插件)。

是否有任何特定于此想法的模式,并且有一种简单的方法在c#中执行此操作我是否必须编写某种对象加载器。

使用主代码中的继承很容易做到这一点,但插件部分很重要。经过一番谷歌搜索后,我无法用一种简单的方式来搜索想法。

希望这一切都有意义。

0 个答案:

没有答案
相关问题