当前位置: 代码迷 >> C# >> 面向对象:大夫与病人
  详细解决方案

面向对象:大夫与病人

热度:371   发布时间:2016-05-05 02:49:39.0
面向对象:医生与病人
在医院中,医生与病人似乎是不同的对象,但实际上,医生也可能生病,而某些病人也可能具有医学知识
这种情形应该如何设定?
------解决思路----------------------
引用:
在医院中,医生与病人似乎是不同的对象,但实际上,医生也可能生病,而某些病人也可能具有医学知识
这种情形应该如何设定?

需要抽象,
病人去医院不会给医生看病的,医生生病了不会给自己看病的。
------解决思路----------------------
就这样瞎写一通吧
class People
        { 
        }
        interface IPatient
        {
            void Ill();
        }
        class Patient : People, IPatient
        {
            public void Ill()
            {
                throw new NotImplementedException();
            }
        }
        class PatientWithKnowledge : Patient, IDoctor
        {
            public void Cure()
            {
                throw new NotImplementedException();
            }
        }
        interface IDoctor
        {
            void Cure();
        }
        class Doctor : People, IDoctor
        {
            public void Cure()
            {
                throw new NotImplementedException();
            }
        }
        class IllDoctor : Doctor, IPatient
        {
            public void Ill()
            {
                throw new NotImplementedException();
            }
        }

------解决思路----------------------
什么叫“这种情形应该如何设定”?



姓名
年龄
三维


医生:人

工号


病人:人

病号



医生去看病时,应该当作病人处理,相当于这个人有2种角色,但两种角色不意味着"医生“=“病人”
------解决思路----------------------
就是有4个类
医生
病人
生病的医生
懂医术的病人
------解决思路----------------------
医生和病人这里强调的是医院里角色、职能,不是指人的个体本身。
一个从事医生职业的人在工作时就是医生身份,他生病了去看病的时候就是病人身份。
------解决思路----------------------
医生是个职业,病人可不是职业。同时你也不能简单把施救者和被救者就当医生和病人

比如:我给某溺水MM人工呼吸,心脏复苏,我不是医生,她到有可能是个医生。