主要针对Web开发人员的问题.
当您开发Web应用程序并向其添加管理区域时,您如何命名它?离开它'管理员'有点过时和不安全.
分享任何其他名词,动词,形容词或诸如此类的名词,其中包含您知道/可以想到的任何网站的标题.
人们经常可以看到类名带有对它们所属的命名空间的引用.其中一个最流行的例子是.NET'Xml'命名空间,其中定义的每个类都以'Xml'标记为前缀.
这对我来说似乎总是多余的,但最近我意识到在某些情况下它可能是有用的......但仍然是多余的.
我想知道人们如何处理这个问题.
谢谢.
情况如下.
public interface IFoo { }
public abstract class FooBase : IFoo { }
Run Code Online (Sandbox Code Playgroud)
现在我需要IFoo
一些额外的方法集合.
public class IFooCollection : List<IFoo>
{
public void UsefullMethod() { }
}
Run Code Online (Sandbox Code Playgroud)
问题是,IFooCollection
当它是一个类时看起来像一个接口.选项如下.
IFooCollection
- 我不喜欢这个,因为它看起来像一个界面.FooCollection
- 我不喜欢这个,因为它不是foos的集合.FooBaseCollection
因为所有的实现IFoo
派生自FooBase
- 我不喜欢这个,因为这可能永远不会是真的.IList<IFoo>
因为只有一个完整的方法 - 我不喜欢这样,因为更改代码因为找不到类的名称...是的,这是令人讨厌的.那你会怎么做?我错过了一个命名约定吗?我们基本上使用这个Microsoft .NET库标准.
UPDATE
代码不会变得普遍 - 它只是在GUI工具中将一些数据放入服务器.所以我不关心将这些方法与其他集合一起使用或忽略这些方法.
我使用camel case,它的所有变量名,函数等的第一个字母都是小写的.但是班级名称是大写的.我应该使用:
class Foo
{
function foo()
{
}
}
Run Code Online (Sandbox Code Playgroud)
要么 :
class Foo
{
function Foo()
{
}
}
Run Code Online (Sandbox Code Playgroud)
哪个更好的约定?我糊涂了.
什么是我的静态类的理想类名,它有一些静态方法来处理备用的常规/常用功能,在C#中保存最近的项目etxc ..(Infact Misc items).我想将Manager作为类名的后缀(例如:SaleManager(处理销售相关功能),ContatManager(处理联系人相关功能)
我们正在研究用C编写的游戏引擎,目前我们正在使用以下命名约定.
ABClass object;
ABClassMethod(object, args)
Run Code Online (Sandbox Code Playgroud)
AB是我们的前缀.
我们的API,即使在对象上工作,也没有继承,多态或任何东西.我们所拥有的只是处理它们的数据类型和方法.
我们的常量命名相似:AB_ConstantName
预处理器宏命名为AB_API_BEGIN
.我们不使用像宏这样的函数.
我想知道这是如何适合作为C API.此外,您可能会注意到整个API都是包装器lua
,您可以使用C
或来自或lua
.大多数时候发动机将从lua使用.
我正在构建一个ASP.Net MVC站点,它有一些非MVC代码的小岛.这最好叫ASP.Net Classic,还是Legacy ASP.Net?
是否有一些更好的名称两个区分这两个?
在我们的系统中,我们有许多类,其构造必须异步发生.我们将构造过程包装在另一个派生类中,该类派生自一个IConstructor
类:
class IConstructor {
public:
virtual void Update() = 0;
virtual Status GetStatus() = 0;
virtual int GetLastError() = 0;
};
Run Code Online (Sandbox Code Playgroud)
当前系统的设计存在一个问题 - 创建IConstructor
衍生类的功能通常会执行额外的工作,这些工作也会失败.此时,不是获取可以查询错误的构造函数,而是NULL
返回指针.
重构代码以避免这种情况是可能的,但是很耗时.在此期间,我决定创建一个构造函数类,我们创建并在出错时返回,而不是NULL
指针:
class FailedConstructor : public IConstructor
public:
virtual void Update() {}
virtual Status GetStatus() { return STATUS_ERROR; }
virtual int GetLastError() { return m_errorCode; }
private: int m_errorCode;
};
Run Code Online (Sandbox Code Playgroud)
所有这些都是一个平凡问题的设置:我怎么命名这个FailedConstructor
班级?在我们当前的系统中,FailedConstructor
将指示"构造一个实例的类Failed
",而不是"表示构造另一个类的失败尝试的类".
我觉得它应该以其中一种设计模式命名,比如Proxy
或Adapter
,但我不确定是哪种.
编辑:我应该清楚地表明,我正在寻找一个坚持理想的GoF设计模式之一的答案,或者其他一些完善的命名惯例.
以下类显示了与实际用例类似的内容.它始终为同一个线程返回相同的实例.
public class LookingForName {
private static final ThreadLocal<Something> threadLocal =
new ThreadLocal<Something>(){
@Override
protected Something initialValue() {
return getSomethingSpecial(); // not relevant
}
};
/**
* @return always the same instance of "Something" for the current thread.
*/
public static Something getInstance() {
return threadLocal.get();
}
}
Run Code Online (Sandbox Code Playgroud)
你怎么称呼它?它是"工厂"吗?"价值持有者"?"ThreadLocalStore"?
java design-patterns naming-conventions thread-local factory-pattern
我是一个新的Zend Framework用户,但我不是PHP或编程的新手.我一直在仔细研究代码,试着掌握一切如何插在一起.我一直在研究的部分之一是如何在系统中自动加载类.我知道:
基本上_转换为目录sepearator并自动加载.
我不明白(虽然我确定有一个很好的理由)是为什么动作控制器不遵循这个约定?
为什么不:
?
我猜这个类的后缀可以减少系统中的某些复杂性,从第一次看zend框架看,一切都是经过深思熟虑的 - 我无法想象会议是在没有充分理由的情况下引入的.
任何人都可以解释为什么控制器有前缀,或者甚至更好地指出核心中的一些代码显示为什么它们必须加前缀?
谢谢 :)
.net ×2
php ×2
action ×1
asp.net ×1
asp.net-mvc ×1
c ×1
c# ×1
c++ ×1
class ×1
classname ×1
collections ×1
controller ×1
interface ×1
java ×1
namespaces ×1
thread-local ×1