« “无网周”圆满结束中国电信实习结束 »

Object Interactions--对象互操作(下)

方法签名:用来指代方法头中可被调用代码所“发现”的方面。简而言之,就是不包括 参数名 和 返回类型 的方法头。

比如:


Delegation 委托
如果对象A为了满足某个请求,而寻求另一对象B的帮助,就被称作A对B的委托。
简单说,如果A调用B的方法,那么就是A 委托 B做件事情。

那么如果引起对象A执行一个方法的代码,称作对象A的客户代码。
就是说,哪里调用对象A的方法,哪段代码其中包括对对象A方法的调用,那么这段代码就叫对象A的客户代码。

信息隐藏:就是只提供服务或者方法头,但是不告诉客户代码执行这些服务的内部细节。

可访问性(Accessibility)
C#提供的五种关键字:public , private ,protected , internal , protected internal
在声明特征时没有明确指定其可访问性,则会拥有默认值 private .

在类方法中访问本类的特征只要引用其名称即可。

Pascal命名法 增加一个公共attribute的名称。

那么从客户代码怎么去访问私有attribute呢?
有两种方法:取值/赋值,property
eg:


我们有3种例外不对attribute提供公共方法。
1 。attribute 只进行内部整理工作所用。

2. 有些方法也只用于内部工作。比如 private void DoSth(){...}可能会改变关键值,而这个方法只能被该类下其他方法调用,不能存在于客户代码中。

3. 不是每个私有 attribute 同时提供取值器和赋值器。
不如你要提供一个attribute为只读。那么只用提供get取值访问器。而不给客户代码set的机会。

在软件工程维护中,尽量只改变方法内部的细节私有部分,而不改变方法头,这样可以有效避免连锁反应。因为要知道一个应用程序可能成千上万的地方引用方法头。如果你改变类里面的数据结构即方法头的话,那么你在维护的时候就够受了。

通过编写自己的构造器可以对类进行方便为类设定默认值。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。