我最近开始研究编程模式,而我目前正致力于为某些具有网站特定属性的页面创建几个密切相关的具体类。
我真正想知道的是,我目前使用的模式是否适合问题,是否有任何可以改进的方法,以及是否有更好的方法来解决这个问题除了工厂模式。
感谢您的帮助!
// Abstract factory
public abstract class PageFactory
{
public abstract Page GetPage();
}
public abstract class Page
{
public abstract string Url { get; }
public abstract PageItem[] Items { get; }
}
public abstract class PageItem
{
public abstract string XPath { get; }
public abstract string POSTParameterName { get; }
}
// Concrete factory
public class CreateAccountPageFactory : PageFactory
{
public override CreateAccountPageFactory GetPage()
{
return new CreateAccountPageFactory();
}
}
public class CreateAccountPage : Page
{
public override string Url
{
get { return "http://www.x.com/join"; }
}
public override PageItem[] Items
{
get { return new CreateAccountPageItems().ToArray(); }
}
}
public class CreateAccountPageItems : List<PageItem>
{
public class EmailAddressTextbox : PageItem
{
public override string XPath
{
get { throw new NotImplementedException(); }
}
public override string POSTParameterName
{
get { throw new NotImplementedException(); }
}
}
}