孪生静态和实例方法

时间:2012-06-19 19:25:39

标签: oop class static-methods instance-methods

我有一个类,像这样,简化:

public class Bookmark
{
    public string Nav     { get; set; }
    public string Scroll  { get; set; }
    public string Comment { get; set; }

    public string guid()
    {
        return guid_static(this.Nav, this.Scroll);
    }

    public static string guid_static(string nav, string scroll)
    {
        // some complex equations on nav & scroll
        return result;
    }
    ...
}

从课外,我需要启动两个(实例和静态)方法。 首先 - 获取现有书签的指南。 第二 - 为特定的“位置”(导航和滚动值)生成一个guid,它不是书签(虽然没有实例),可以与另一个guid进行比较。

就OOP概念而言,这两种方法是否正常?或者我必须用唯一的guid()方法引入一个像“Position”这样的新类?是不是有“官方”面向对象的解决方法? (我只是不想增加课程数量)

P.S。如果没关系,那么双胞胎静态和实例方法的命名约定是什么?

1 个答案:

答案 0 :(得分:1)

如果你愿意,你可以将它们命名为“guid”。大多数语言会自动知道你调用guid()和guid(nav,scroll)之间的区别,因为方法签名是不同的。你目前编码的方式还不错。