【问题标题】:Naming convention for Class with prefix domain name? [closed]带有前缀域名的类的命名约定? [关闭]
【发布时间】:2012-03-24 07:13:19
【问题描述】:

我见过很多遵循这种编码风格的项目

以下语法的任何显着优势

我的项目名称:King Author(KA)

我将创建按钮组件。我的班级名称“KAButton”

这是正确的方法吗?命名空间呢?

另外请建议 GUI 组件(Flex/Html)的命名约定?

【问题讨论】:

    标签: html actionscript-3 apache-flex


    【解决方案1】:

    命名类的常规方式是

    com.yourdomain.project.projectompontent.yourclassname.as(或 mxml)

    或者在你的情况下

    com.yourdomain.kingauthor.buttons.RadioButton.as

    优点:

    • 不会有重复。您可以结合使用此代码 使用来自第三方的组件(或者他们可以使用您的),而不必害怕拥有重复的类定义。之所以出现这种情况,是因为您在命名空间中使用了一个独特的部分:您的域。
    • 您可以轻松地在子组件中构建项目,第三方开发人员将更快地了解您的项目。

    您建议的命名约定有一些缺点:

    • 为按钮命名 KAButton 并不是自言自语:人们必须知道 KA 代表 King Author,如果不查看代码/文档,他们将不知道它是什么。

    您可以通过使用基于组件的约定来避免这种情况,并为您的项目获得结构。

    【讨论】:

    • 感谢粉碎。我非常感谢您的回复。
    【解决方案2】:

    ActionScript 已经提供了一个包机制,所以不需要像以前在 C++ 中那样为类添加前缀。

    只需将类放入您自己的包中即可:

    package com.example {
        class Button {
    
        }
    }
    

    【讨论】:

      【解决方案3】:

      shredding 说的刚刚好,但是有些人在他们的类名上添加了这样的前缀,所以 kingauthor.RadioButton 在任何情况下都不会与 flash.RadioButton 冲突。 例如,box2dflash 使用 b2World、b2Body.. 我记得看到其他库也是如此。

      我个人肯定会使用 kingauthor.buttons.kaRadioButton..

      【讨论】:

      • 我不同意在所有情况下都使用前缀,除了接口(它的名字应该是ISomeInterface)。将ka 添加到您的所有类中是没有意义的,因为它变得多余(您会看到一些老派的C 程序员在他们的所有类前面加上C,这同样是愚蠢的)。对于 Box2D 示例,我相信是这样的,因为它是原始项目的直接端口
      • 最终,无论如何,这显然是个人喜好。曾经有一段时间用_mc 命名movieclips 是一个标准,但最近它失败了,主要是因为人们厌倦了我认为的(或者正如你指出的那样,是多余的)。另一方面,我看到人们想知道是否有办法让 FDT 在 flash.* 包之前使用八哥框架,只是因为两个包中都有(例如 Sprite)类。再说一次,如果它是 SSprite 或 StlSprite,那不会出现。我不喜欢它,但就是这样,或者给类命名完全不同的东西。
      • 从好的方面来说,如果实现相似,您可以对项目中的所有导入进行搜索和替换,以获得快速而肮脏的 Starling 游戏:D
      猜你喜欢
      • 2010-10-30
      • 2010-11-07
      • 1970-01-01
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      • 2015-07-23
      • 2016-12-25
      • 2011-02-01
      相关资源
      最近更新 更多