ecco la mia Interface Builder:Builder Design Pattern: Accesso alla/Passando dati del modello a/in classi calcestruzzo
public interface IContainerBuilder {
void SetSections();
void SetSides();
void SetArea();
WebControl GetContainer();
}
E questo è il mio 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;
}
}
E il regista è qui:
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();
}
}
Ed è così che io chiamo dalla pagina di default:
var conBuilder = new ContainerBuilder(new SingleContainerBuilder());
conBuilder.BuildContainer();
var container = conBuilder.GetContainer();
Ora il problema/confusione che sto avendo è come passare i dati del modello alle classi concrete? La ragione per cui sono confuso/bloccato potrebbe essere il numero di contenitori diversi (potrebbe essere più di 20-30). Ogni diverso tipo di contenitore deve andare e prendere i dati dal modello o esiste un approccio migliore per questo?
La seconda cosa di cui sono confuso è che il mio modello si trova in una libreria diversa. Devo creare una copia del modello nel mio progetto web e popolare il mio modello locale da quel modello master, oppure devo interrogare direttamente il modello master per le proprietà della classe concreta? Come puoi vedere, il mio SingleContainer contiene BaseProperties, che sono la dichiarazione locale delle proprietà che sono già nel modello principale. Non vedo o capisco il punto della Model locale e non sono sicuro di essere qui o no.
Mi dispiace, sono nuovo di Design Patterns.
Qualsiasi aiuto sarà molto apprezzato,
Grazie
Grazie per la risposta @ratnim. Sono d'accordo con la parte del modello. In realtà, ho seguito l'idea discussa qui [link] (http://stackoverflow.com/questions/696027/design-pattern-builder). L'idea di seguire l''oggetto dati' mi è sembrata una soluzione fattibile finora. Ma tengo aperta questa ricerca se c'è un approccio migliore là fuori che qualsiasi guru esperto sta usando e può guidarmi – Angloos