zoukankan      html  css  js  c++  java
  • 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(属性)则除了对状态或值的呈现之外,其他的什么也没有。

  • 相关阅读:
    哈希表
    跳表
    哈夫曼之谜
    选择树、判定树和查找树

    将gbk字符串转换成utf-8,存储到注册表中后,再次从注册表读取转换成gbk,有问题!!!
    函数内部还是不要使用 strtok()
    没想到: System.out.println(n1 == f1 ? n1 : f1);
    在不同DPI屏幕环境下,让图标显示的尺寸保持不变,使用 LoadImage() 加载图标
    在多线程中显示模态窗口,出现异常现象
  • 原文地址:https://www.cnblogs.com/zhwl/p/2006037.html
Copyright © 2011-2022 走看看