• OOP 术语:Attributes(特性)与 Properties(属性)的区别(转载)


    • 来源:http://www.wwwcoder.com/
    • 作者:Venkatarama Uppugunduri

    这些至少在程序员的世界中是一种容易被混淆的术语。它们的含意经常会被交换。

    这里是我对于它们的看法。

    Attributes(特性)讨论的是主题的天性。而 Properties(属性)则讨论的是主题的所有物中的财产、内容,状态或者所有权。

    打个比方说我是人类,在这个前提下人类就是以我为主题时的一个 Attribute(特性)。而象在我的公寓中既有人也有狗一样,在这里的人就是以公寓为主题时的 Properties(属性)。

    相同的事物出现在 .NET 的世界中。例如:Serializable 就是一个实例对象的 Attribute(特性),并且那个对象可能拥有一个使用所期望的 true 或 false 布尔值的属性来表示其能够被序列化。这会告诉 .NET 运行时:这个类是能够通过 Attribute(特性)来表示序列化能力的,并且又无需使用通过它所暴露的 Property(属性)就能够完全表示这个类是可序列化能力。

    因此 Attribute(特性)为主题定义了特有的性质或天性,而 Property(属性)则是属于这个主题的。在面向对象范例的术语中,与主题相关的 Attribute(特性)的含意应该是:“是什么”,而 Property(属性)的含意则应该是:“有什么”。

    范例
    • 人是人类。这里的人类就是一个 Attribute(特性)。
    • 人有翅膀。这里的翅膀就是 Properties(属性)。

    那么 Field(字段) 和 Property(属性)呢?多数时候我们都会听说:Fields(字段)和 Properties(属性)在有时候听起来是相似的,而在有时候它们听起来又是不同的。而实际上,Fields(字段)定义了在存储值或者主题的状态时所必需的区域,而 Properties(属性)则除了对状态或值的呈现之外,其他的什么也没有。

  • 相关阅读:
    (转) 应用系统性能监控(二) Pinpoint 使用
    随机滚动名字和试题 单击暂停----给媳妇儿写的爱心小应用
    最短路径问题 java
    数字全排列 java深度优先搜索
    “接竹竿”纸牌游戏 java实现运算结果
    插入排序 java代码
    选择排序 java代码
    快速排序java代码
    1. Django的安装及配置
    python3.x,pycharm的安装
  • 原文地址:https://www.cnblogs.com/zhwl/p/2006037.html
Copyright © 2020-2023  润新知