就在最近,可能是因为我一直在维护一些旧的代码,我已经开始研究如何/为什么我做事了.像你一样做.
我的大多数Delphi编程都是内部选择,或者是分散在Web或手册中的示例.有些事情只是因为"这就是我做的"
我目前想知道的是声明,变量,程序,功能等.
当我使用表格时,我会将所有程序和功能置于公开或私下.虽然我会尝试避免全局变量和常量,但通常会在接口或实现中使用var或const,具体取决于它们需要调用的位置(有时它们将在公共/私有中)
否则,如果它只是一个单元,我将在接口中声明该过程并在实现中使用.我最近维护的一些代码没有接口声明,但是在程序之后通过调用正确地订购了所有代码...
有没有正确的方法来做到这一点?课程中应该/不应该有什么规则?或者它是一种风格/当你开始的时候?
编辑添加
我的问题不是关于程序的声明是私有/公开的,而是一个程序单位的所有声明是否应该进入其中一个.同样var/const应该是一个还是另一个?
进一步澄清
我知道不在界面中声明,或在public/private/etc中声明会影响我的应用程序中其他单元的过程/功能的可见性.
我的问题的核心是为什么我不希望要申报吗? - 特别是在私人放置时,在表单/单元中工作时,更明确的是声明的东西不可用于其他单位......
干杯丹
根据具体实例可以具有不同值的所有内容都属于该类,即
TDog = class
strict private
FColor : TColor;
FName : String;
public
property Color : TColor read FColor write FColor;
property Name : String read FName write FName;
end;
Run Code Online (Sandbox Code Playgroud)
颜色和名称显然是每只狗的属性(每只狗在这里都有其他值).
通用规则:
private(在此类和此单元中strict private可见)或(仅在此类中可见)public属性.这使您可以自由地将简单的字段访问更改为更复杂的getter/setter方法,而无需更改类的接口.private足够,就没有必要protected(在子类中也可见).并且只public从外面制作你真正需要的东西.published.uses条款也是如此.您可能会混淆全局变量这个术语.如果它在类中声明它不是全局变量(即使声明public).全局变量(你正确认为可以避免使用)总是var在接口或实现部分的一个部分中进行(按照上面的一般规则优先考虑)