我想看看是否有人为我正在编写的类(OOP中的类)设计了更好的设计.我们有一个脚本将共享文件夹统计信息放在CSV文件中.我正在阅读它并将其放入Share类中.
我的老板想知道如下信息:
文件总数
文件总大小
Office文件数
Office文件的大小
Exe文件数
Exe文件的大小
等....
我有一个带有$ numOfficeFiles,$ sizeOfficeFiles等变量的类,有大量的get/set方法.有没有更好的方法来做到这一点?如果你有一个包含很多变量/属性的类,一般规则是什么?
我认为这是一个与语言无关的问题,但如果重要的话,我正在使用PHP.
有时,数据可以只是数据:
files = { 'total': { count: 200, size: 3492834 }, 'office': { count: 25, size: 2344 }, 'exe': { count: 30, size: 342344 }, ... }
每当我在课堂上看到超过5或6个非最终变量时,我就会感到厌倦.
有可能他们应该按照Outlaw Programmer的建议放在一个较小的班级.它也很有可能被放置在哈希表中.
这是一个很好的经验法则:如果你有一个除了setter和getter之外什么都没有的变量,你就拥有DATA而不是代码 - 将它从你的类中取出并将它放入一个集合或其他东西中.
拥有一个带有setter和getter的变量只意味着你永远不会对它做任何事情(它的数据)或者操纵它的代码在另一个类中(可怕的OO设计,将变量移动到另一个类).
请记住 - 作为类成员的每一段数据都是您必须编写特定代码才能访问的内容; 例如,当您将其从对象传输到GUI上的控件时.
我经常使用名称标记GUI控件,以便我可以遍历集合并自动将数据从集合传输到屏幕并返回,从而显着减少样板代码; 将数据存储为成员变量会使此过程变得更加复杂(需要反思).