抽象工厂我正确地做到了#39;基于此代码

时间:2016-05-10 16:22:01

标签: c#

在不知道我的实现的情况下你能否认为这是使用抽象工厂的正确方法?我一直在使用http://www.dofactory.com/net/abstract-factory-design-pattern来深入了解模式,但发现自己处于有利位置。我所处的位置是每个新的控件类型,如果......代码味道,我将不得不添加其他类型?

提前致谢。

private void RenderInputType(StringBuilder renderedControlList, dynamic type, dynamic item, dynamic name)
    {
        if (type == "ButtonModal")
        {
            // new factory to handle complex types
            HtmlFiveInputFactory complex = new ModalControlFactory();
            HtmlInputWorld world = new HtmlInputWorld(complex);
            world.RunExecutionPlan(renderedControlList, item, name);
        }
        else if (type == "CheckBoxIf")
        {
            HtmlFiveInputFactory complex = new CheckBoxIfControlFactory();
            HtmlInputWorld world = new HtmlInputWorld(complex);
            world.RunExecutionPlan(renderedControlList, item, name);
        }
        else if (type == "ListView")
        {
            // very complex, checkbox toggle per row, buttonmodal, checkboxif
        }
        else
        {
            InputFactory inputFactory = new HtmlInputFactory(_htmlInputService);
            inputFactory.CreateInput(renderedControlList, type, item, name);
        }
    }

0 个答案:

没有答案