关于《关于一道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 @   OOLi  阅读(2486)  评论(24编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述
点击右上角即可分享
微信分享提示