private static void Main(string[] args) { //IFactory factory = new UndergraduateFactory(); IFactory factory = new VolunteerFactory(); var studentA = factory.CreateLeiFeng(); studentA.BuyRice(); studentA.Sweep(); studentA.Wash(); var studentB = factory.CreateLeiFeng(); studentB.BuyRice(); studentB.Sweep(); studentB.Wash(); var studentC = factory.CreateLeiFeng(); studentC.BuyRice(); studentC.Sweep(); studentC.Wash(); Console.ReadKey(true); }
public int CreateVolunteer(IVolunteer volunteerDTO) { Volunteer v = VolunteerFactory.CreateVolunteer(volunteerDTO); v = _store.Volunteers.Add(v); _store.SaveChanges(); return(v.Id); }
public IEnumerable <IVolunteer> GetAllVolunteers() { IEnumerable <Volunteer> v = _store.Volunteers .Include(e => e.User) .ToList(); return(v.Select(e => VolunteerFactory.CreateVolunteer(e))); }
public IVolunteer GetVolunteerById(int id) { try { Volunteer volunteer = _store.Volunteers .Include(e => e.User) .Single(v => v.Id == id); return(VolunteerFactory.CreateVolunteer(volunteer)); } catch (InvalidOperationException) { return(null); } }
private static void TestFactoryMethod() { ILeifengFactory factory = new UndergraduteFactory(); var studentLeifeng = factory.CreateLeifeng(); studentLeifeng.BuyRice(); var studentLeifeng1 = factory.CreateLeifeng(); studentLeifeng1.Sweep(); ILeifengFactory factory2 = new VolunteerFactory(); var leifengVolun = factory2.CreateLeifeng(); leifengVolun.Sweep(); }
// 工廠方法模式 // 定義一個用於建立物件的介面,讓子類決定實體化哪一個類別。工廠方法使一個類別的實力化延遲到其子類別 public void Noghtingale() { IFactory factory = new UndergraduateFactory(); Noghtingale student = factory.CreateNoghtingale(""); student.BuyRice(); student.Sweep(); student.Wash(); IFactory factory1 = new VolunteerFactory(); Noghtingale student1 = factory1.CreateNoghtingale(""); student1.BuyRice(); student1.Sweep(); student1.Wash(); }