• 设计类的一些技巧


    对象与类的一些概念,在面向对象语言当中大同小异,在此不多做详述。

    在实际的编写代码当中,有一些技巧能让我们设计出来类更具有OOP的专业水准。

    参考自《Java核心技术 卷一》

    1.一定要保证数据私有

      也就是说不要破坏封装性。有时候可能会需要到访问的方法或者更新的方法,但是不要嫌麻烦,最好还是保持实例域的私有性。当数据保持私有时,它们的表示形式的变化不会对类的使用者产生影响。我的理解是,比如有一个类需要多次使用,但是如果保持封装性,访问或更新或其他操作都有唯一的操作方法,那么使用起来就会非常一致,就像使用编程语言的自带方法一样方便、一致。

    2.一定要对数据初始化

      最好不要依赖于系统的默认值,而是应该显式地初始化所有的数据,具体的初始化方式可以是提供默认值,也可以是在所有构造器中设置默认值。

    3.不要在类中使用过多的基本类型

      意思就是用一个有意义的类去替代多个相关联的基本类型。注意不是基本的数据类型。如:

    private String street;
    private String city;
    private String state;
    private int zip;
    

      可以用一个Address的类去替代这些基本的类型。

    4.不是所有的域都需要独立的域访问器和域更改器

      在第一点中,说到要保持类的封装性,但是不是所有类都需要访问方法和更改方法,因为在实际的业务需求中,有些数据是不希望被看到或者更改的。这一点需要根据实际的需求来设计,只是提醒一下,在封装类的时候不要想都不想,直接把访问器和更改器全都整上。

    5.将职责过多的类进行分解

      说的明白一点就是,一个类的功能一定要单一,不要什么功能都写在一个地方。分开写好处非常明显,我觉得最重要的一点就是可以提高代码的复用性,而且易于维护。这样以后碰到需要相同功能的需求时,直接调用之前的写过的就行了。

    6.类名和方法名要能够体现他们的职责

      这一点对于一些初学者或者英语不好的同学,是非常容易忽略的一点。刚开始敲一些例子,非常喜欢用类型T1,a1类似的方法名。但是为了培养好习惯,和能够让别人看得懂,一定要起跟类和方法作用相接近的单词作为名称。对于英语不好的同学,一个翻译软件必不可少,还能慢慢的积累词汇。

    7.优先使用不可变的类

      当多个线程同时更新一个对象时,就会发生并发更改,结果是不可预料的。如果类是不可变的,就可以安全地在多个线程间共享其对象。但是在实际中,很多类是需要更新的。不可变类常见于表示值的类中,比如时间等。

  • 相关阅读:
    kitten编程猫 学习教程(一) 学习笔记
    华为中国生态大会2021举行在即,GaussDB将重磅发布5大解决方案
    华为云官网负责人明哥:我们是如何做到门面不倒,8个月挑战业界翘楚?
    为啥你写的代码总是这么复杂?
    云图说|不要小看不起眼的日志,“小日志,大作用”
    如何高效地存储与检索大规模的图谱数据?
    华为云PB级数据库GaussDB(for Redis)揭秘第十期:GaussDB(for Redis)迁移系列(上)
    开发者必看,面试官心中的最佳数据库人才模型是什么样?
    华为云PB级数据库GaussDB(for Redis)揭秘第九期:与HBase的对比
    技术实践丨如何解决异步接口请求快慢不均导致的数据错误问题?
  • 原文地址:https://www.cnblogs.com/lbhym/p/11486437.html
Copyright © 2020-2023  润新知