比如总工厂类:using System;
using System.Collections.Generic;
using System.Text;
namespace AbstractFactoryMode
{
/// <summary>
/// 总工厂
/// </summary>
public abstract class AbstractFactory
{
public abstract AbstractUser CreateUser();
public abstract AbstractBook CreateBook();
}
} 子工厂类:
using System;
using System.Collections.Generic;
using System.Text;
namespace AbstractFactoryMode
{
/// <summary>
/// 一个具体的工厂
/// </summary>
public class ConcreteFactory : AbstractFactory
{
/// <summary>
/// 子工厂,用来创造用户
/// </summary>
/// <returns></returns>
public override AbstractUser CreateUser()
{
//具体的产物
return new User();
}
/// <summary>
/// 子工厂,用来创造书籍
/// </summary>
/// <returns></returns>
public override AbstractBook CreateBook()
{
//具体的产物
return new Book() ;
}
}
}
.........................................
最后调用using System;
using System.Collections.Generic;
using System.Text;
namespace AbstractFactoryMode{
class Program
{
static void Main(string[] args)
{
//得到一个子工厂
AbstractFactory factory = new ConcreteFactory(); //这里干嘛不直接new新建一个AbstractFactory类,偏偏从子类来新建?是不是抽象类不能直接新建对象?
//创造用户
AbstractUser user = factory.CreateUser();
user.CreateUser();
//创造书籍
AbstractBook book = factory.CreateBook();
book.CreateBook();
}
}
}
using System.Collections.Generic;
using System.Text;
namespace AbstractFactoryMode
{
/// <summary>
/// 总工厂
/// </summary>
public abstract class AbstractFactory
{
public abstract AbstractUser CreateUser();
public abstract AbstractBook CreateBook();
}
} 子工厂类:
using System;
using System.Collections.Generic;
using System.Text;
namespace AbstractFactoryMode
{
/// <summary>
/// 一个具体的工厂
/// </summary>
public class ConcreteFactory : AbstractFactory
{
/// <summary>
/// 子工厂,用来创造用户
/// </summary>
/// <returns></returns>
public override AbstractUser CreateUser()
{
//具体的产物
return new User();
}
/// <summary>
/// 子工厂,用来创造书籍
/// </summary>
/// <returns></returns>
public override AbstractBook CreateBook()
{
//具体的产物
return new Book() ;
}
}
}
.........................................
最后调用using System;
using System.Collections.Generic;
using System.Text;
namespace AbstractFactoryMode{
class Program
{
static void Main(string[] args)
{
//得到一个子工厂
AbstractFactory factory = new ConcreteFactory(); //这里干嘛不直接new新建一个AbstractFactory类,偏偏从子类来新建?是不是抽象类不能直接新建对象?
//创造用户
AbstractUser user = factory.CreateUser();
user.CreateUser();
//创造书籍
AbstractBook book = factory.CreateBook();
book.CreateBook();
}
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货