当前位置:  开发笔记 > 编程语言 > 正文

一个班级有多少变量太多了?

如何解决《一个班级有多少变量太多了?》经验,为你挑选了2个好方法。

我想看看是否有人为我正在编写的类(OOP中的类)设计了更好的设计.我们有一个脚本将共享文件夹统计信息放在CSV文件中.我正在阅读它并将其放入Share类中.

我的老板想知道如下信息:

文件总数

文件总大小

Office文件数

Office文件的大小

Exe文件数

Exe文件的大小

等....

我有一个带有$ numOfficeFiles,$ sizeOfficeFiles等变量的类,有大量的get/set方法.有没有更好的方法来做到这一点?如果你有一个包含很多变量/属性的类,一般规则是什么?

我认为这是一个与语言无关的问题,但如果重要的话,我正在使用PHP.



1> Jimmy..:

有时,数据可以只是数据:

files = {
   'total':  { count: 200, size: 3492834 },
   'office': { count: 25, size: 2344 },
   'exe':    { count: 30, size: 342344 },
   ...
}



2> Bill K..:

每当我在课堂上看到超过5或6个非最终变量时,我就会感到厌倦.

有可能他们应该按照Outlaw Programmer的建议放在一个较小的班级.它也很有可能被放置在哈希表中.

这是一个很好的经验法则:如果你有一个除了setter和getter之外什么都没有的变量,你就拥有DATA而不是代码 - 将它从你的类中取出并将它放入一个集合或其他东西中.

拥有一个带有setter和getter的变量只意味着你永远不会对它做任何事情(它的数据)或者操纵它的代码在另一个类中(可怕的OO设计,将变量移动到另一个类).

请记住 - 作为类成员的每一段数据都是您必须编写特定代码才能访问的内容; 例如,当您将其从对象传输到GUI上的控件时.

我经常使用名称标记GUI控件,以便我可以遍历集合并自动将数据从集合传输到屏幕并返回,从而显着减少样板代码; 将数据存储为成员变量会使此过程变得更加复杂(需要反思).

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有