抽象工厂模式的目的是: 为创建一组相互关联或者相互依赖的对象提供支持。
实例代码:
public abstract class ButtonFactory
{
protected Size _size;
protected ButtonFactory()
{
this._size = new Size(128, 128);
}
public virtual Button CreateButton()
{
Button button = new Button();
button.Size = this._size;
return button;
}
public virtual Button CreateButtonOK()
{
Button button = this.CreateButton();
button.Text = "OK";
return button;
}
public virtual Button CreateButtonCancel()
{
Button button = this.CreateButton();
button.Text = "Cancel";
return button;
}
}

public class BetaFactory : ButtonFactory
{
protected Font _font;
public BetaFactory()
: base()
{
this._font = new Font("Arial", 10);
}
public override Button CreateButton()
{
Button button = base.CreateButton();
button.Font = this._font;
button.TextAlign = ContentAlignment.TopCenter;
return button;
}
public override Button CreateButtonOK()
{
Button button = base.CreateButtonOK();
//code
return button;
}
public override Button CreateButtonCancel()
{
Button button = base.CreateButtonCancel();
//code
return button;
}
}
实例代码:
public abstract class ButtonFactory
{
protected Size _size;
protected ButtonFactory()
{
this._size = new Size(128, 128);
}
public virtual Button CreateButton()
{
Button button = new Button();
button.Size = this._size;
return button;
}
public virtual Button CreateButtonOK()
{
Button button = this.CreateButton();
button.Text = "OK";
return button;
}
public virtual Button CreateButtonCancel()
{
Button button = this.CreateButton();
button.Text = "Cancel";
return button;
}
}
public class BetaFactory : ButtonFactory
{
protected Font _font;
public BetaFactory()
: base()
{
this._font = new Font("Arial", 10);
}
public override Button CreateButton()
{
Button button = base.CreateButton();
button.Font = this._font;
button.TextAlign = ContentAlignment.TopCenter;
return button;
}
public override Button CreateButtonOK()
{
Button button = base.CreateButtonOK();
//code
return button;
}
public override Button CreateButtonCancel()
{
Button button = base.CreateButtonCancel();
//code
return button;
}
}


浙公网安备 33010602011771号