加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 不将小(ish)类拆分成单独文件的优点?

发布时间:2020-12-15 09:32:37 所属栏目:大数据 来源:网络整理
导读:我有一个“uObjects”单元.它有几个不同类型的对象,可以扩展TCollection / TCollectionItem.有一次将所有这些小小的类分组在一个文件中可能有很大的意义,因为事情很小而且它们有点相关,然后你就没有担心的bajillion文件了. 但随着时间的推移,越来越多的方法
我有一个“uObjects”单元.它有几个不同类型的对象,可以扩展TCollection / TCollectionItem.有一次将所有这些小小的类分组在一个文件中可能有很大的意义,因为事情很小而且它们有点相关,然后你就没有担心的bajillion文件了.

但随着时间的推移,越来越多的方法被添加到这些集合中,使得管理变得更加困难,因此我正在考虑将uObjects单元分解为多个较小的单元以使其更易于维护.

但在此之前,我想知道是否有任何我应该知道的警告.这是我应该继续前进而不放弃的事情吗?或者我是否有任何理由(可能在某些情况下)不想将一个单位的无关部分分解成多个单元?这可能会引发问题吗?我仍然试图围绕来自Java世界的单元的细微差别,其中在单个文件中具有多个类通常不是一种选择.

解决方法

主要问题是循环依赖.假设你有这些类:

type
  TClass2 = class;

  TClass1 = class
    FObj1 = TClass2;
  end;

  TClass2 = class
    FObj2 = TClass1;
  end;

如此处所述,循环依赖关系将这些类绑定在同一文件中.那是因为循环依赖只能通过前向声明来实现.并且前向声明不能应用于多个文件.

您可能遇到的另一个问题是私有和受保护的成员可见性.在同一文件中,该文件中定义的私有成员和受保护成员始终对该文件中的其他代码可见.这是普通可见性规则的一个特殊例外,它是Delphi的一个特性.

将类移动到不同的文件时,您可能会发现编译失败,因为其他类中的私有和受保护成员不再可见.

关于类/文件关系的Delphi习语与Java相比有所不同.密切配合的类通常在同一文件中定义.另一方面,如果A类在没有B类知识的情况下存在,那么这两个类通常可以放在不同的文件中.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读