- 浏览: 37379 次
-
最新评论
给个关于 C# 的属性的例子。
在 JAVA 里,大致是这样的。
public class Person

{
private String _name;

public void setName ( String name )

{
_name = name.Upper();
}

public String getName ( )

{
return _name.Upper();
}
}
然后获取和设置的时候需要:
Person _p = new Person();
_p.setName ("henkoo"); //setter
String _pName = _p.getName(); //getter
public class Person

{
private string _name;

public string Name

{
set

{
_name = value.toUpper();
}

get

{
return _name.toUpper();
}
}
}
Person _p = new Person();
_p.Name ="henkoo"; //setter
String _pName = _p.Name; //getter
在 JAVA 里,大致是这样的。

















然后获取和设置的时候需要:



基于 JAVA 写成的《重构》里提到,在“值域访问方式”这个问题上,存在两种截然不同的观点:其中一派认为,在该变量定义所在的 Class 中应该自由(直接)访问他;另一派认为,即使在这个 Class 中,也应该只使用访问函数间接访问之。两派的争论如火如荼。
其中,“间接访问变量” 的好处是,subclass 得以通过“覆写一个函数”而改变获取数据的途径,更支持灵活的数据管理方式。“直接访问变量”的好处则是,代码比较容易阅读。阅读代码的时候,不会需要停下来说,“啊,这只是个取值函数”。
随后,《重构》提供了 Self Encapsulate Field 这个方式来将对 field 的直接访问改为通过访问函数的间接访问。
==============
在 C# 中,可以这样。





















接下来的设置和获取:



其实改动不大。这里的 Name 就是一个属性(Prototype)。与字段(field)一致的访问方式,与 getter、setter 访问函数一致的处理方式,而且同样支持虚拟、继承和多态。这就是所谓的“公开的一致的接口界面,和隐藏起来的Get、Set的计算细节”。
从这里看来,JAVA 的那套争论是否有些多余:)
发表评论
-
入职第一天
2004-07-12 20:20 556很喧闹的一天新人训。当然,可以说是激情四射,或者说是嘈杂无聊。 ... -
迎接部门训
2004-07-13 18:07 514今天开始迎接部门的专业训了,C#、SQL Server、数据库 ... -
生活的颜色
2004-07-14 18:57 577一个诚实的裁判就这样慷慨赴义了,很多很多黑暗中的裁判们却还好端 ... -
历史的沉思
2004-07-16 12:43 641很久以前的一篇文章, ... -
选择的未来
2004-07-17 15:11 493先提一个问题:做一个技术员,技术能力重要还是业务知识重要?再提 ... -
统一的困惑
2004-07-19 20:45 535RUP(Rational统一过程)的基本开发方式是迭代。需求迭 ... -
开发的效率
2004-07-21 17:44 530面对多人协同开发的分层系统,有两种开发方式:其一、一人负责一到 ... -
模型或模式
2004-07-22 23:27 649不论是吵吵嚷嚷的软件工程、XP建模,还是死灰复燃的MDA、一心 ... -
对象的效率
2004-07-28 21:22 538面向对象带来方便的同时亦带来很多的问题。类的继承在扩展的同时也 ... -
泪写的文章
2004-07-29 20:20 517今天我又哭了。一个月前,我还觉得哭于我是很遥远的事情。甚至,我 ... -
期待的精彩
2004-07-31 11:08 535好久好久没有看到国足这么酣畅的胜利了,好久好久没有体会到看球的 ... -
转载的文章
2004-08-01 10:50 504今天转载一篇吧,记录一段可笑的过往。 别了,Dr.Dobb's ... -
TDD 心得
2004-08-03 16:19 796一直觉得,近年来,真正有意义的技术或者思想只有两个:Refac ... -
近期的任务
2004-08-06 12:54 5821、Test Driven Development2、Java ... -
上海印象一
2004-08-09 22:28 571车一进入上海,扑面而来的就是一片一片的高楼,黑压压地便压了过来 ... -
上海印象二
2004-08-10 21:19 526上海当然是天堂,但也是仅对一部分人一部分地区。对大多数人大部分 ... -
转载的文章
2004-08-13 23:38 456O/R Mapping中的继承~ http://www.cnb ... -
生日的祝福
2004-08-15 10:49 714今天是agate的生日。尽管这句话已经被用得很俗,不过我还是想 ... -
等爱的狐狸
2004-08-27 18:16 573“对我来说,你还只是一个小男孩,就像其他千万个小男孩一样。我不 ... -
飞翔的寓言
2004-08-30 20:58 517我才发现梦想与现实间的差别逆着风让自己体验每一个感觉就像是寓言 ...
相关推荐
1. **VI(Virtual Instrument)设计**:LabVIEW中的每一个程序都是一个VI,登录界面的VI应包含前端面板(Front Panel)和程序框图(Block Diagram)。前端面板是用户与VI交互的部分,而程序框图则是编写代码的地方。...
同时,由于界面库通常提供了预设的UI元素和布局,开发者无需从零开始设计每个细节,从而能更快地完成开发工作。在C++项目中整合这些资源,需要了解如何使用C++库、头文件和链接库,以及如何在代码中调用库函数来实现...
它通过提供丰富的控件和布局组件,简化了界面开发的过程,使得开发者可以专注于程序逻辑的实现,而不是界面的细节。DuiLib的出现和流行,提升了Windows平台的UI开发水平,也推动了国内开源社区的发展。
10. 设计工具:使用Adobe XD、Sketch、Figma等设计工具预先创建界面原型,可以方便地与开发团队共享设计概念和细节。 总的来说,HS8145X6修改界面的工作涵盖了广泛的技能,包括设计原则、编程技术、用户测试和项目...
导入该文件到Excel后,可以查看具体的设计细节和指导,以确保在实际开发过程中遵循这些规范。 总结来说,制作欢迎界面窗体涉及多个步骤,包括选择合适的开发工具、设计界面布局、添加交互功能以及遵循设计规范。...
在IT行业中,用户界面(UI)的设计至关重要,因为它直接影响到用户的体验和产品的吸引力。QQ作为中国最受欢迎的即时通讯软件之一,其登录界面早已深入人心。仿QQ登录界面的设计,旨在模仿QQ的经典风格,同时融入创新...
### 浅析iPhone用户界面设计精粹:从细节成就卓越 #### 一、理解应用类型及其特点 在设计iPhone应用程序时,首先需要明确的是应用程序的类型。根据《iPhone Human Interface Guidelines》,可以将iPhone应用程序...
【EXUI界面】小清新登入窗口界面是一种设计风格简洁、色彩柔和、给人带来舒适感的登录...设计者通过简洁明快的元素,创建了一个易于理解和使用的登录界面,而"content.txt"文件则为实现这个设计提供了必要的技术细节。
Qt是一个跨平台的C++图形用户界面应用程序开发框架,它使得开发者可以创建出具有现代、美观且功能丰富的应用界面,而无需深入学习复杂的图形界面编程细节。 Qt5是Qt库的最新版本,提供了许多改进和新特性。例如,它...
在Android应用开发中,用户界面的设计至关重要,尤其是启动时的欢迎界面...当然,实际项目中可能会有更多的复杂性和细节需要处理,但这个基础框架提供了一个良好的起点。记得在实践中不断学习和改进,以提升用户体验。
GTK(GIMP Toolkit)是一个跨平台的图形用户界面工具包,广泛应用于Linux、Windows和macOS等操作系统,支持多种编程语言,包括C、C++、Python、Vala等。它提供了丰富的控件和API,让开发者能够轻松创建出具有专业...
通过阅读文档,开发者可以更好地掌握Java界面编程的细节和技巧。 总的来说,"Java界面编程-中级界面篇"是一个全面的学习资源,涵盖了从基本组件使用到高级定制的各个方面,适合已经掌握了基础Java知识并希望提升...
MFC(Microsoft Foundation Classes)是微软提供的...总的来说,理解和掌握MFC的界面切换技术,能够帮助初学者更好地构建功能丰富的Windows应用程序。通过不断实践和学习,你将能够更加熟练地驾驭这个强大的开发工具。
SwiXml的主要特点是将界面布局与业务逻辑分离,使得开发者可以专注于应用程序的核心功能,而无需过于关注界面细节。这种设计模式遵循了MVC(模型-视图-控制器)架构,提高了代码的可维护性和重用性。 SwiXml的核心...
为了满足日益增长的专业性和用户体验需求,高端后台界面设计成为开发者和设计者不断探索和创新的领域。本文将对“高端后台界面素材”这一主题进行深入探讨,分析其设计原则、所含元素以及应用价值。 一、设计原则 ...
界面设计的每一个细节都可能会影响用户的体验,因此,书中可能还会提及到如何处理用户输入、反馈、错误处理等方面的问题。 封面设计和内页设计分别由Karen Montgomery和Ron Bilodeau负责,确保了本书的外在形式与其...
CSkin的强大之处在于它简化了界面设计过程,使得开发者可以专注于业务逻辑,而无需过多关注界面的细节。然而,设计良好的界面不仅仅是视觉上的美观,还需考虑到用户体验、易用性和可访问性,因此在实践中不断优化和...
在设计畸形界面时,位图的优势在于它可以提供丰富的细节和色彩深度,这对于创建复杂的图形和纹理非常有利。设计师可以利用位图编辑软件(如Photoshop或GIMP)进行细致的像素操作,创建出独特且富有想象力的界面元素...
本主题将详细介绍如何利用不同的资源和库来美化VC界面,以及涉及的皮肤技术。 首先,我们来看"LibUIDK",这是一个专门用于Windows界面开发的库,它提供了丰富的控件和组件,使得开发者能够轻松地设计出美观、现代的...