Пример #1
0
        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);
        }
Пример #2
0
        public int CreateVolunteer(IVolunteer volunteerDTO)
        {
            Volunteer v = VolunteerFactory.CreateVolunteer(volunteerDTO);

            v = _store.Volunteers.Add(v);
            _store.SaveChanges();
            return(v.Id);
        }
Пример #3
0
        public IEnumerable <IVolunteer> GetAllVolunteers()
        {
            IEnumerable <Volunteer> v = _store.Volunteers
                                        .Include(e => e.User)
                                        .ToList();

            return(v.Select(e => VolunteerFactory.CreateVolunteer(e)));
        }
Пример #4
0
 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);
     }
 }
Пример #5
0
        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();
        }
Пример #6
0
        // 工廠方法模式
        // 定義一個用於建立物件的介面,讓子類決定實體化哪一個類別。工廠方法使一個類別的實力化延遲到其子類別
        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();
        }