Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用ICommand接口_C#_Interface_Instance_Icommand - Fatal编程技术网

C# 使用ICommand接口

C# 使用ICommand接口,c#,interface,instance,icommand,C#,Interface,Instance,Icommand,我有一个实现特定接口的类(IOrganicEnvironment) IOrganicEnvironment接口提供了一系列方法和属性,我主要在ICommand Execute()方法中使用 但是我不需要任何客户端代码来调用Colorizator实例中的方法和属性 我能/应该做什么?如果我显式地实现接口,并使其成为内部的,这会有帮助吗?我认为使用组合会更好 public class Colorizator : IOrganicEnvironment<Cell<YUV>, YUV&

我有一个实现特定接口的类(
IOrganicEnvironment

IOrganicEnvironment
接口提供了一系列方法和属性,我主要在
ICommand Execute()方法中使用

但是我不需要任何客户端代码来调用
Colorizator
实例中的方法和属性


我能/应该做什么?如果我显式地实现接口
并使其成为
内部的
,这会有帮助吗?

我认为使用组合会更好

public class Colorizator : IOrganicEnvironment<Cell<YUV>, YUV>>
{
   // normal code here
}

public class ColorizatorCommand : ICommand
{
    private Colorizator _colorizator;

    public ColorizatorCommand(Colorizator colorizator)
    {
        _colorizator = colorizator;
    }

    public void Execute()
    {
        //use _colorizator here;
    }
}
公共类着色程序:IOrganiceEnvironment>
{
//这里是普通代码
}
公共类ColorizatorCommand:ICommand
{
专用彩色打印机(Colorizator);;
公共Colorizator命令(Colorizator Colorizator)
{
_着色器=着色器;
}
public void Execute()
{
//在这里使用_colorizator;
}
}

只是澄清一下:所有客户都应该关心的是ICommand实现,而不是IOR组织环境?如果是这样的话,似乎有些代码(虽然可能不是“客户机”)需要知道它满足组织环境-您能告诉我们更多关于这方面的信息吗?在任何情况下,显式接口实现都可能对您有所帮助,正如您所想的那样。我想知道的另一件事是,这是否真的是实现ICommand的正确层——它似乎比简单的DTO层要深得多。
public interface ICommand
{
    void Execute();
}
public class Colorizator : IOrganicEnvironment<Cell<YUV>, YUV>>
{
   // normal code here
}

public class ColorizatorCommand : ICommand
{
    private Colorizator _colorizator;

    public ColorizatorCommand(Colorizator colorizator)
    {
        _colorizator = colorizator;
    }

    public void Execute()
    {
        //use _colorizator here;
    }
}