1.查找同义词(不好)
您可以尝试找到“get”的同义词。但是,您可能会认为不使用“get”的 getter 可能意味着其他东西,但您不知道它的确切作用。我会避免使用这种方法,因为最终理解它的作用永远不会干净。
2。使用副词作为后缀(不好)
您可以通过确保您执行某项操作来添加指定 get-Method 的副词。像“getCreated”、“getSafe”、“getAssured”、“getEnsured”、“getInit”、“getInitialized”。这样就可以清楚地理解它是一个吸气剂,但也告诉你它会发生其他事情。但是,您可能不知道名称是属性的一部分还是 get 的一部分。像“getSecureUrl”。所以我会避免使用 get 的后缀。
3.使用副词作为前缀(不好)
您也可以添加副词作为前缀,以说明您在做什么。像“secureGet”,“safeGet”,“initGet”,......虽然这不会干扰属性,但您不知道它是否是一个吸气剂或者其他什么东西在吸气剂之前做了一些事情而没有实际得到一些东西。所以返回值可能是出乎意料的。我也会避免这种方法。
4.使用描述你实际所做的事情的词语(也许)
与其说这是一个get-Method,你也可以说我有一个初始化值的方法。它还返回一个值对它来说是一个好处。比如:
function initNameid($name) { ... }
这样你就知道你也可以初始化一些东西,而不仅仅是得到一些东西。这样一来,您就可以保持吸气剂的清洁和简单,而无需混合它。但是,就好像您正在搜索您必须考虑的更标准的东西一样,如果他们正在搜索吸气剂,人们可能找不到它。所以它可能也不是最好的。
5.使用其他属性增强 getter (好)
您可以添加额外的属性来告诉用户 getter 做了更多的事情:
function getName($id, $create = false) { ... }
这样你就可以为 get 函数提供信息,如果布尔值为真,它应该尝试强制它的值。如果您使用适当的 IDE,它还会向您展示该争论的关键是“强制”、“创建”或类似的东西,因此您将始终知道它的作用。就预期而言,它可能会采用最简洁的方法。
6.将初始化和 getter 组合起来,而不用组合它们(好)
扪心自问,为什么还要把它结合起来?当然,这是一条线,但是……你需要吗?简单的一个接一个怎么样:
initName($name);
getNameId($name);
有时最好不要仅仅因为只有一行而混合一些东西。
7.你真的创造了东西还是简单地存储它?(好)
如果你只是存储一些类似的东西:
public static $name;
public static getName() {
if (!self::$name) $name = ...
return self::$name;
}
如果一个 getter 也只是缓存了一些东西,那么就没有必要改变它的名字。它来了,完全没有问题。所以你不需要解决一个不存在的问题。
8.为什么你需要在一个动词中结合两种不同的含义?(好)
如果你用一个函数来获取或创建一些东西……这样命名真的很糟糕吗? “getCreate”或“getOrCreate”等并不像听起来那么糟糕。很清楚它的作用。当然,它不是一个单一的动词,但是你做A或B然后A。那么如果你能留在AB并且每个人都知道它的意思,你为什么还要尝试找到C呢?问有没有东西也不错,但既然是两种不同的东西,没必要去想新词。