01.
public
abstract
class
HotelAbstractFactory
02.
{
03.
public
virtual
ISearchHotel GetSearchHotelInstance(HotelRequestInfo request)
04.
{
05.
return
null
;
06.
}
07.
public
virtual
IOrderHotel GetOrderHotelInstance(HotelRequestInfo request)
08.
{
09.
return
null
;
10.
}
11.
private
static
HotelAbstractFactory factory =
null
;
12.
13.
public
static
HotelAbstractFactory GetInstance(HotelRequestInfo request)
14.
{
15.
switch
(request.hotelActionType )
16.
{
17.
case
EHotelActionType .Search :
18.
factory =
new
HotelSearchFactory();
19.
break
;
20.
case
EHotelActionType.Order :
21.
factory =
new
HotelOrderFactory ();
22.
break
;
23.
}
24.
return
factory;
25.
}
26.
}