【发布时间】:2015-08-22 18:17:43
【问题描述】:
这是我的构建器界面:
public interface IContainerBuilder {
void SetSections();
void SetSides();
void SetArea();
WebControl GetContainer();
}
这是我的 ConcreteBuilder:
public class SingleContainerBuilder:BaseProperties, IContainerBuilder {
Panel panel = new Panel();
public void SetSections() {
//panel.Height = value coming from model
//panel.Width = value coming from model
}
public void SetSides() {
//panel.someproperty = //value coming from model,
//panel.someotherproperty = //value coming from model,
}
public void SetArea() {
throw new NotImplementedException();
}
public System.Web.UI.WebControls.WebControl GetContainer() {
return panel;
}
}
导演来了:
public class ContainerBuilder {
private readonly IContainerBuilder objBuilder;
public Builder(IContainerBuilder conBuilder) {
objBuilder = conBuilder;
}
public void BuildContainer() {
objBuilder.SetArea();
objBuilder.SetSections();
objBuilder.SetSides();
}
public WebControl GetContainer() {
return this.objBuilder.GetContainer();
}
}
这就是我从默认页面调用它的方式:
var conBuilder = new ContainerBuilder(new SingleContainerBuilder());
conBuilder.BuildContainer();
var container = conBuilder.GetContainer();
现在我遇到的问题/困惑是如何将模型数据传递给具体的类?我感到困惑/卡住的原因是可能有许多不同的容器(可能超过 20-30 个)。每种不同类型的容器都必须从模型中获取数据还是有更好的方法?
我感到困惑的第二件事是,我的模型在不同的库中。我是否需要在我的 Web 项目中创建模型的副本并从该主模型填充我的本地模型,还是应该直接查询主模型的具体类属性?如您所见,我的 SingleContainer 包含 BaseProperties,它们是主模型中已经存在的属性的本地声明。我没有看到或理解本地模型的意义,我不确定我是否在这里。
对不起,我是设计模式的新手。
任何帮助将不胜感激,
谢谢
【问题讨论】:
标签: c# asp.net design-patterns