为了在c ++中进行概念演示,我需要对类型,函数,变量使用一些占位符命名方案,例如: Foobar。有几个不同的实体来命名和区分最终只有foo / bar同时用于类,函数,成员变量在视觉上没有区别。这些实体是否有一些有用的占位符命名方案?
enum Enum1 { ... }
struct Struct1 { ... }
class Class1
{
public:
void function1();
void function2();
...
private:
int variable1;
int variable2;
...
}
对于类型,函数和变量,仅使用foo / bar,区别就不那么明显了
enum Foo { ... }
struct Bar { ... }
class Foo
{
public:
void foo();
void bar();
void baz();
private:
int foo_;
int bar_;
}
答案 0 :(得分:2)
动物经常用于说明面向对象的编程。他们有良好的同质和异质行为(eat
,bark
),关系树(Dalmatian
是 - Dog
,Dog
有一个{{1等等。
当然,同样的问题可以通过非OOP技术解决......然后相同的属性有用地说明了通过虚函数,模板特化,适配器,Tail
等动态多态性之间的关系。
答案 1 :(得分:1)
据我了解,这些示例可以很好地用于说明表达式,语法或架构模式,但不能用于算法或业务逻辑部分。每当你试图说明最后一个时,你应该考虑使用有意义的名称来解释它们在算法中的作用。
至于我,我通常会使用foo
/ bar
/ moo
/ boo
等。这样做的工作非常好就示例而言相当短。
如果示例不够短且案例强调类型(如函数或数组)似乎有助于提高可读性,functionA
/ functionB
可用作另一种选择 - 在恕我直言中阅读和操纵这些名称似乎更容易(而不是数字)。数字会分散注意力。
另一种方式(在讨论SQL查询时对我来说特别好,但在某些C ++情况下也很有用)是使用原始的现实生活实体,如class Person
和class Employee
作为子类。
如果你试图向非专业人士展示OOP示例,在这种情况下,Foo / Bar / Function1绝对不是一个选项:只有最聪明的学生才能得到这个想法。我的第一个OOP示例是lightbulb
turn on
和turn off
方法,isOn
属性,colour
和power
属性。它可以使用fluorescent
或incandescent lamp
子类进行扩展,并封装在desk lamp
类中。如果您进一步使用OOP并引入接口,它还可以实现ac-powered
和/或dc-powered
接口。
使用Foo / Bar等只有在与经验相同或更高的人沟通时才有意义 - 那些已经完全理解语言的人(例如当你提出类似的问题时“我应该使用{{1} }或foo + bar
?“亲切的。”