1.总是用属性 (Property) 来代替可访问的数据成员(field)
来源:互联网 发布:网络主播哪年开始火的 编辑:程序博客网 时间:2024/04/28 16:46
好的OO编程习惯是提供公开的访问器,让客户代码有效的操作选择的私有Attribute的同时,也可以使对象本身能很好的控制这些Attribute,保护业务逻辑的正常运作有2种实现访问器的方法:
1.OO编程语言的普通手法提供get和set的方法分别用来提取和修改Attribute.
编写一个最简单的类Author来实现我们的访问器
程序代码
2.C#首选的Property构造方法在类中预定义的一个property会提供取值和赋值访问器.
下面为property版的Author访问器
程序代码
在Sample中我只是简单定义了一下所谓的取值器,目的则是通过呈示2种不同的实现手法来解释Property这种语言构造的基本特征(也是最显著的):
一个property的名称应与其关联attribute的名称相符,但应以大写字母开头(Pascal命名法)
一个property的类型必须与其关联的attribute类型一致
一个property定义取值和赋值访问器,但是它们的声明和客户代码调用方式都不一样。
一个property的类型必须与其关联的attribute类型一致
一个property定义取值和赋值访问器,但是它们的声明和客户代码调用方式都不一样。
不必为取值访问器声明返回类型,不必为赋值访问器声明参数列表,它会自动取得名为value的单个参数,代表了客户代码提供的新值实现property进步在:整体的声明了property的类型,而访问器自动从property继承该类型整体的声明了property的访问性,访问器自动从property继承该性质对于公共的Attribute,除了直接赋值之外不会有其他的代码执行,而对于property访问器,我们编写的所有代码都将执行。在某种程度上,property提供了从客户代码访问公共Attribute的方便性:某个Attribute目前很简单,但是我们无法保证以 后它不会扩展得很复杂,在扩展中我们可以通过改变property的内部逻辑来达到我们的目的而不是直接对Attribute进行操作,这带来的便捷是可 以想象的另外,property提供了使用私有Attribute和取值/赋值控制数据的完整性。客户代码对property的操作最终作用于对象的 Attribute,例如为了防范不符合业务逻辑的客户代码的输入,我们就必须拒绝它的传入。为了达到拒绝的目的,我们大可不必另外编写验证的代码,而是 把过程放置在set赋值访问器内部举一个简单的例子来说明当类的私有特征改变时如何限制连锁反应.
旧版本程序代码:
新版本程序代码:
这样当外部条件发生变化时,我们就轻松的躲过了修改代码的必要。
- 1.总是用属性 (Property) 来代替可访问的数据成员(field)
- 提高C#编程水平的50个要点 之一“总是用属性 (Property) 来代替可访问的数据成员(field)”
- 提高C#编程水平的50个要点 1.总是用属性 (Property) 来代替可访问的数据成员 2.在 readonly 和 const 之间,优先使用 readonly 3.在 as 和 强制类型转换之
- 条款1:使用属性代替可访问的数据成员
- 条款1:使用属性代替可访问的数据成员
- 优化程序--C#使用属性代替可访问的数据成员
- 改善C#程序的50种方法 条款1:使用属性代替可访问的数据成员
- Effective C# 原则1:尽可能的使用属性(property),而不是数据成员(field)。
- Effective C# 原则1:尽可能的使用属性(property),而不是数据成员(field)
- Effective C# 原则1:尽可能的使用属性(property),而不是数据成员(field)
- 尽可能使用属性(Property),少使用字段(Field)实现对数据的访问 (轉 )
- property 的成员属性
- 【C#高效编程50例】条目1:使用属性而不是可访问的数据成员
- hibernate之定制属性访问(field|property|noop)
- 尽量用属性(Property),而不是字段(Field)
- 类中私有数据成员的可访问性
- 原则1:始终能的使用属性(property),而不是可直接访问的Data Member
- Effective C#阅读笔记-1.使用属性(Properties)代替数据成员(Data Member)
- 销售的说话技巧
- ASP.NET页面刷新方法总结
- Y86 Instruction Set Architecure(ISA)
- Google 可携式搜寻面板
- 中国人用筷子的十二种忌讳
- 1.总是用属性 (Property) 来代替可访问的数据成员(field)
- 浅析ASP.NET生成随机密码
- Solrnet教程
- 开发Internet Explorer Mobile 6相关程序手记
- 能让你长寿的十个生活习惯-写给IT人士
- WCM Local Rendering Portlet 和 Remote Rendering Portlet 的比较
- Oracle自动备份
- Linux ImageMagick 转换图片格式工具及命令
- 研究生如何发表论文 --转自张帅