/// <summary> /// Creates an object of a Data Access Implementor /// </summary> /// <param name="type"></param> /// <exception cref="InvalidBookingTypeDAOException</exception> /// <returns>Returns an interface for one the booking types supplied</returns> public IBookingDAOImpl Create(BookingTypes type) { IBookingDAOImpl bookings = null; bookings = s_bookingDAOs[type]; return(bookings); }
/// <summary> /// Creates an object of a Data Access Implementor /// </summary> /// <param name="type"></param> /// <exception cref="InvalidBookingTypeDAOException</exception> /// <returns>Returns an interface for one the booking types supplied</returns> public IBookingDAOImpl Create(BookingTypes type) { IBookingDAOImpl bookings = null; if (type == BookingTypes.Flight) { bookings = new AirTravelBookingDAOImpl(); } return(bookings); }
/// <summary> /// Gets the instance of Booking Data Access Object as this a singleton /// </summary> /// <exception cref="InvalidBookingTypeDAOException">Throws an exception if an invalid booking type</exception> /// <returns>Instance of the Booking Data Access Object</returns> public static BookingDAO GetInstance(BookingTypes type) { try { daoImpl = BookingDAOImplFactory.GetInstance().Create(type); } catch (InvalidBookingTypeDAOException) { throw; } return(instance); }
static BookingDAOImplFactory() { AppSettingsReader asr = new AppSettingsReader(); string bookingConfig = asr.GetValue("bookingDAOTypes", typeof(string)).ToString(); string[] tokens = bookingConfig.Split(':'); for (int i = 0; i < tokens.Length;) { BookingTypes bt = (BookingTypes)Convert.ToInt32(tokens[i]); string className = tokens[i + 1]; Assembly asm = Assembly.GetExecutingAssembly(); object objBookingDAO = asm.CreateInstance(className); IBookingDAOImpl bookingDAOImpl = (IBookingDAOImpl)objBookingDAO; s_bookingDAOs.Add(bt, bookingDAOImpl); i += 2; } }