当前位置:文档之家› 抽象工厂设计模式

抽象工厂设计模式

项目名为:AbstractFactoryMode



1.建立抽象总工厂

using System;
using System.Collections.Generic;
using System.Text;

namespace AbstractFactoryMode
{
///


/// 总工厂
///

public abstract class AbstractFactory
{
public abstract AbstractUser CreateUser();
public abstract AbstractBook CreateBook();
}
}





2.建立子工厂(子工厂继承总工厂,实现抽象总工厂的抽象方法)



using System;
using System.Collections.Generic;
using System.Text;

namespace AbstractFactoryMode
{
///
/// 一个具体的工厂
///

public class ConcreteFactory : AbstractFactory
{
///
/// 子工厂,用来创造用户
///

///
public override AbstractUser CreateUser()
{
//具体的产物
return new User();
}
///
/// 子工厂,用来创造书籍
///

///
public override AbstractBook CreateBook()
{
//具体的产物
return new Book() ;
}
}
}



3.建立抽象产物,由具体的实体类继承

//user(用户)抽象产物



using System;
using System.Collections.Generic;
using System.Text;

namespace AbstractFactoryMode
{
///
/// 抽象产物,写关于创造用户所需要的方法
/// 此抽象产物可写成接口,实现效果一样
///

public abstract class AbstractUser
{
///
/// 此方法用于创造用户
///

public abstract void CreateUser();
//以下还可以写很多方法
//比如:
//public abstract IList GetAllUser()--------得到所有用户
//public abstract user GetUserById()-------根据id查询用户
//public abstract user ModifyUserByName()----根据姓名修改用户
//这些方法都可以在user类中实现
//如果把此方法改为接口,那么user类中就 必须完全实现此抽象产物中的全部方法
}
}



//book(书籍)抽象产物



using System;
using System.Collections.Generic;
using System.Text;

namespace AbstractFactoryMode
{
///
/// 抽象产物,写关于创造书籍所需要的方法
/// 此抽象产物可写成接口,实现效果一样
///

public abstract class AbstractBook
{
///
/// 此方法用与创造书籍
///

public abstract void CreateBook();
//以下还可以写很多方法
//比如:
//public abstract IList GetAllBook()--------得到所有书籍
//public abstract book GetBookById()-------根据id查询书籍

//public abstract book ModifyBookByName()----根据书名修改书籍
//这些方法都可以在book类中实现
//如果把此方法改为接口,那么book类中就 必须完全实现此抽象产物中的全部方法

}
}

4.建立实体类,用于执行具体的操作,并继承对应的抽象产物

//user(用户)类



using System;
using System.Collections.Generic;
using System.Text;

namespace AbstractFactoryMode
{
///


/// 具体的实现
/// 继承产物ABstractUser
///

public class User:AbstractUser
{
public override void CreateUser()
{
Console.WriteLine("用户创建成功");
}
/* public override IList GetAllUser()
{
//写实现方法
//return null;
}
public override user GetUserById()
{
//写实现方法
//return null;
}
public override user ModifyUserByName()
{
//写实现方法
//return null;
}*/
}
}



//book(书籍)类



using System;
using System.Collections.Generic;
using System.Text;

namespace AbstractFactoryMode{
///
/// 具体的实现
/// 继承产物ABstractBook
///

public class Book:AbstractBook
{
//重写CreateBook方法
public override void CreateBook()
{
Console.WriteLine("书籍创建成功");
}
/* public override IList GetAllBook()
{
//写实现方法
//return null;
}
public override Book GetBookById()
{
//写实现方法
//return null;
}
public override Book ModifyBookByName()
{
//写实现方法
//return null;
}*/
}
}



5.有此类来实现,相当与项目中的表现层



using System;
using System.Collections.Generic;
using System.Text;

namespace AbstractFactoryMode{
class Program
{
static void Main(string[] args)
{
//得到一个子工厂
AbstractFactory factory = new ConcreteFactory();

//创造用户
AbstractUser user = factory.CreateUser();
user.CreateUser();

//创造书籍
AbstractBook book = factory.CreateBook();
book.CreateBook();
}
}
}


文本预览
相关文档 最新文档