Ejemplo n.º 1
0
 static void Main(string[] args)
 {
     try
     {
         AbstractStudent student = new StudentVip()
         {
             Id   = "1001",
             Name = "tom"
         };
         {
             //student.Show();
         }
         {
             student = new BaseStudentDecorator(student);
             student = new StudentCoreDecorator(student);
             student = new StudentDesignDecorator(student);
             student.Show();
         }
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
     Console.Read();
 }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            try
            {
                //{
                //    AbstractStudent student = new StudentVIPInherit()
                //    {
                //        Id = 1234,
                //        Name = "Ivan"
                //    };
                //    student.Study();
                //}
                //{
                //    AbstractStudent student = new StudentVIP()
                //    {
                //        Id = 1234,
                //        Name = "Ivan"
                //    };
                //    // 比起继承,组合跟家灵活 可以为多个类型服务,但是这个调用成本更高一点
                //    // 因为即关注了 AbstractStudent 类, 又关注了StudentCombination
                //    StudentCombination studentCombination = new StudentCombination(student);
                //    studentCombination.Study();
                //}

                {
                    AbstractStudent student = new StudentFree()
                    {
                        Id   = 1234,
                        Name = "Ivan"
                    };

                    // BaseStudentDecorator baseStudentDecorator = new BaseStudentDecorator(student); // 1.

                    // AbstractStudent baseStudentDecorator = new BaseStudentDecorator(student); //2.
                    student = new BaseStudentDecorator(student);

                    student = new StudentHomeworkDecorator(student);

                    student = new StudentCommentDecorator(student);
                    // 不修改业务类, 可以随意添加功能 装饰器
                    // 还可以随意调整顺序
                    student.Study();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw;
            }
        }
Ejemplo n.º 3
0
        static void Main(string[] args)
        {
            try
            {
                Console.WriteLine("欢迎来到.net高级班vip课程,今天是设计模式的学习");
                AbstractStudent student = new StudentVip()
                {
                    Id   = 381,
                    Name = "秋叶"
                };
                //student.Show();

                //int i = 0;
                //i = 1;
                //AbstractStudent student2 = new BaseStudentDecorator(student);
                //student2.Show();

                student = new BaseStudentDecorator(student);//覆盖了
                //student.Show();

                //AbstractStudent student3 = new StudentCoreDecorator(student);
                //student3.Show();

                student = new StudentPayDecorator(student);

                student = new StudentCoreDecorator(student);
                student = new StudentFrameworkDecorator(student);
                student = new StudentProjectDecorator(student);
                student = new StudentDesignDecorator(student);

                //student = new StudentPayDecorator(student);

                student.Show();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            Console.Read();
        }