关于《关于一道C#上机题的一点想法》

看了《关于一道C#上机题的一点想法》和《泛型委托》两篇文章,深有感触,还是关于下面这道题:

题目:17个人围成一圈,从第一个人开始报数,报到3的退出,一直到剩下最后一个人,用面向对象的思想去做这道题。

前面两篇感觉上还是不够面向对象,至少要有面向对象三大特征:封装,继承,多态吧,
第一篇仅是构建了一个双向循环链表数据结构,思想还是面向过程的。
第二篇用到了泛型委托,但是思想和特定技术是不相关的,用到泛型委托未必就是面向对象啊。
所以我也斗胆写了下这道题,请大家指教了:
首先说明,这里用到了状态模式,单例模式,主要还是状态模式,实现了一个简单的状态机,
先上图:

再上代码:
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4 
 5 namespace Test
 6 {
 7     interface IPersonState
 8     {
 9        void Handle();
10 
11        void Handle(Person person);
12    }
13 }
14 

First

Second

Three

Last

Person

PersonLink

调用:
Program

运行结果:

源代码:/Files/hongyin163/Test.rar

不知道大家感觉怎样?

posted @ 2009-08-27 13:30  OOLi  阅读(2484)  评论(24编辑  收藏  举报