在看Observer模式的时候,参考了IView Observer模式简介

发现一个问题,如果是类的继承,就像Observer ConcreteObserver之间,父类中有个字段aSubject被设置成protected的访问级别,当然可以被子类ConcreteObserver引用到,同时这个字段也作了get/setProperty属性!那么在子类ConcreteObserver中的函数用哪个?

 

public override void Update()

 
    {      
      // 第一种 Property  this.ObservedSubject

            System.Console.WriteLine("In Observer {0} : DataFrom subject {1}" ,

                strObserverName,this.ObservedSubject.ImportantSubjectData);

 

 

            // 第二种 Protected   aSubject

          System.Console.WriteLine("In Observer {0} : DataFrom subject {1}" ,

                strObserverName,aSubject.ImportantSubjectData);

        }

 

其实两个都可以,因为Property也可以被子类访问,一般来说不应该有两个出口给子类的,

想讨论一下,Property在什么情况下被使用。

很显然protected 的初衷就是为了继承用的,我认为此处使用Protected  

 

 

完整地代码参见 Observer 代码

相关文章:

  • 2021-11-05
  • 2021-11-06
  • 2021-08-23
  • 2022-12-23
  • 2022-12-23
  • 2021-07-25
  • 2021-12-17
  • 2022-12-23
猜你喜欢
  • 2021-08-12
  • 2021-07-07
  • 2021-10-12
  • 2021-11-29
  • 2022-12-23
  • 2021-10-24
  • 2022-12-23
相关资源
相似解决方案