`

界面和细节

阅读更多
给个关于 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




基于 JAVA 写成的《重构》里提到,在“值域访问方式”这个问题上,存在两种截然不同的观点:其中一派认为,在该变量定义所在的 Class 中应该自由(直接)访问他;另一派认为,即使在这个 Class 中,也应该只使用访问函数间接访问之。两派的争论如火如荼。

其中,“间接访问变量” 的好处是,subclass 得以通过“覆写一个函数”而改变获取数据的途径,更支持灵活的数据管理方式。“直接访问变量”的好处则是,代码比较容易阅读。阅读代码的时候,不会需要停下来说,“啊,这只是个取值函数”。

随后,《重构》提供了 Self Encapsulate Field 这个方式来将对 field 的直接访问改为通过访问函数的间接访问。

==============

在 C# 中,可以这样。

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


其实改动不大。这里的 Name 就是一个属性(Prototype)。与字段(field)一致的访问方式,与 getter、setter 访问函数一致的处理方式,而且同样支持虚拟、继承和多态。这就是所谓的“公开的一致的接口界面,和隐藏起来的Get、Set的计算细节”。

从这里看来,JAVA 的那套争论是否有些多余:)





分享到:
评论

相关推荐

    登录界面_labview用户界面_labview界面_labview登录界面_labview_

    1. **VI(Virtual Instrument)设计**:LabVIEW中的每一个程序都是一个VI,登录界面的VI应包含前端面板(Front Panel)和程序框图(Block Diagram)。前端面板是用户与VI交互的部分,而程序框图则是编写代码的地方。...

    最新VC界面库,360界面,QQ界面,QQ农牧场界面

    同时,由于界面库通常提供了预设的UI元素和布局,开发者无需从零开始设计每个细节,从而能更快地完成开发工作。在C++项目中整合这些资源,需要了解如何使用C++库、头文件和链接库,以及如何在代码中调用库函数来实现...

    DuiLib界面库编程总结

    它通过提供丰富的控件和布局组件,简化了界面开发的过程,使得开发者可以专注于程序逻辑的实现,而不是界面的细节。DuiLib的出现和流行,提升了Windows平台的UI开发水平,也推动了国内开源社区的发展。

    HS8145X6修改界面.rar

    10. 设计工具:使用Adobe XD、Sketch、Figma等设计工具预先创建界面原型,可以方便地与开发团队共享设计概念和细节。 总的来说,HS8145X6修改界面的工作涵盖了广泛的技能,包括设计原则、编程技术、用户测试和项目...

    制作欢迎界面窗体

    导入该文件到Excel后,可以查看具体的设计细节和指导,以确保在实际开发过程中遵循这些规范。 总结来说,制作欢迎界面窗体涉及多个步骤,包括选择合适的开发工具、设计界面布局、添加交互功能以及遵循设计规范。...

    仿QQ登陆界面 仿QQ登陆界面

    在IT行业中,用户界面(UI)的设计至关重要,因为它直接影响到用户的体验和产品的吸引力。QQ作为中国最受欢迎的即时通讯软件之一,其登录界面早已深入人心。仿QQ登录界面的设计,旨在模仿QQ的经典风格,同时融入创新...

    浅析iPhone用户界面设计精粹(从细节成就卓越).pdf

    ### 浅析iPhone用户界面设计精粹:从细节成就卓越 #### 一、理解应用类型及其特点 在设计iPhone应用程序时,首先需要明确的是应用程序的类型。根据《iPhone Human Interface Guidelines》,可以将iPhone应用程序...

    (EXUI界面)小清新登入窗口界面

    【EXUI界面】小清新登入窗口界面是一种设计风格简洁、色彩柔和、给人带来舒适感的登录...设计者通过简洁明快的元素,创建了一个易于理解和使用的登录界面,而"content.txt"文件则为实现这个设计提供了必要的技术细节。

    Qt模仿VS2015界面框架

    Qt是一个跨平台的C++图形用户界面应用程序开发框架,它使得开发者可以创建出具有现代、美观且功能丰富的应用界面,而无需深入学习复杂的图形界面编程细节。 Qt5是Qt库的最新版本,提供了许多改进和新特性。例如,它...

    android欢迎界面简单实现

    在Android应用开发中,用户界面的设计至关重要,尤其是启动时的欢迎界面...当然,实际项目中可能会有更多的复杂性和细节需要处理,但这个基础框架提供了一个良好的起点。记得在实践中不断学习和改进,以提升用户体验。

    GTK+精美登录界面

    GTK(GIMP Toolkit)是一个跨平台的图形用户界面工具包,广泛应用于Linux、Windows和macOS等操作系统,支持多种编程语言,包括C、C++、Python、Vala等。它提供了丰富的控件和API,让开发者能够轻松创建出具有专业...

    java界面编程-中级界面篇

    通过阅读文档,开发者可以更好地掌握Java界面编程的细节和技巧。 总的来说,"Java界面编程-中级界面篇"是一个全面的学习资源,涵盖了从基本组件使用到高级定制的各个方面,适合已经掌握了基础Java知识并希望提升...

    MFC简单的界面切换

    MFC(Microsoft Foundation Classes)是微软提供的...总的来说,理解和掌握MFC的界面切换技术,能够帮助初学者更好地构建功能丰富的Windows应用程序。通过不断实践和学习,你将能够更加熟练地驾驭这个强大的开发工具。

    GUI界面引擎 SwiXml

    SwiXml的主要特点是将界面布局与业务逻辑分离,使得开发者可以专注于应用程序的核心功能,而无需过于关注界面细节。这种设计模式遵循了MVC(模型-视图-控制器)架构,提高了代码的可维护性和重用性。 SwiXml的核心...

    高端后台界面素材

    为了满足日益增长的专业性和用户体验需求,高端后台界面设计成为开发者和设计者不断探索和创新的领域。本文将对“高端后台界面素材”这一主题进行深入探讨,分析其设计原则、所含元素以及应用价值。 一、设计原则 ...

    界面设计模式 Designing Interfaces 2nd Edition

    界面设计的每一个细节都可能会影响用户的体验,因此,书中可能还会提及到如何处理用户输入、反馈、错误处理等方面的问题。 封面设计和内页设计分别由Karen Montgomery和Ron Bilodeau负责,确保了本书的外在形式与其...

    CSkin WinForm 登录界面美化设计Demo

    CSkin的强大之处在于它简化了界面设计过程,使得开发者可以专注于业务逻辑,而无需过多关注界面的细节。然而,设计良好的界面不仅仅是视觉上的美观,还需考虑到用户体验、易用性和可访问性,因此在实践中不断优化和...

    使用位图设计畸形界面

    在设计畸形界面时,位图的优势在于它可以提供丰富的细节和色彩深度,这对于创建复杂的图形和纹理非常有利。设计师可以利用位图编辑软件(如Photoshop或GIMP)进行细致的像素操作,创建出独特且富有想象力的界面元素...

    VC界面美化皮肤

    本主题将详细介绍如何利用不同的资源和库来美化VC界面,以及涉及的皮肤技术。 首先,我们来看"LibUIDK",这是一个专门用于Windows界面开发的库,它提供了丰富的控件和组件,使得开发者能够轻松地设计出美观、现代的...

Global site tag (gtag.js) - Google Analytics