问题标签 [class-structure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1793 浏览

php - 组织 PHP 类层次结构的最佳方法

我的大多数项目都使用了一个有点原始的框架,但是我想到了一个通用的设计问题,我还没有解决。对于给定的应用程序,我应该将特定于应用程序的类结构与框架的结构分开,还是在框架之上构建不是一件坏事?

例如,假设我有一个带有基本 Controller 类的框架,并为我的应用程序的给定部分扩展了它。哪种安排最有意义,为什么?

类结构 A:

  • 调试时直观、易于查找源文件。
  • 文件命名/目录结构反映了类层次结构。

类结构 B:

  • 保持框架模块化,易于更换/更新。
  • 给目录结构增加了一些复杂性,目录/文件命名不再遵循类层次结构。

总的来说,我知道这将取决于个人喜好,但我想确保在决定走哪条路之前权衡所有利弊。它实际上归结为类命名和目录结构,因为在任何一种情况下,实际的层次结构都将保持不变。

0 投票
3 回答
1288 浏览

c# - .NET 嵌套类

我正在研究的当前类库将有一个基类(字段),其中包含 50 多种特定的“字段”类型,这些类型将从“字段”继承并嵌套以保持可读性。例如...

到目前为止,一切看起来都不错,我可以使用如下所示的代码:

但是,为什么这也有效?这里发生了什么,允许编译器/IDE 智能感知继续链接这些“FieldA”?

无论如何,这不是应用程序破坏,而是认为它很奇怪。在 Boo 中做同样的事情(这是用于库的实际语言)。

0 投票
2 回答
114225 浏览

c# - C#:列出程序集中的所有类

我想输出(以编程方式 - C#)我的程序集中所有类的列表。

任何提示或示例代码如何做到这一点?反射?

0 投票
3 回答
15391 浏览

class - 如果在 uml 类图中的条件?

如果“属性”为真,则执行此“操作”,否则什么也不做。

我如何在 uml 类图中显示这个。

谢谢你,金

0 投票
1 回答
153 浏览

python - 为什么我不能分配给 object() 实例的未声明属性,但我可以使用自定义类?

基本上我想知道为什么会这样:

但这会返回一个 AttributeError:

如何判断哪些类可以使用未定义的属性,哪些不能?

谢谢。

0 投票
2 回答
322 浏览

php - 用类中的变量/常量分配动态值

我一直都知道,您不能为类结构中的变量设置动态值,但是有什么办法可以解决这个问题吗?

我有这个界面:

在此代码中,标记为第 1 节和第 2 节的行会触发错误,更具体的错误如下:

但由于这是一个接口,因此没有方法,因此不允许使用代码块。

任何人都可以提供解决方案吗?

0 投票
2 回答
1708 浏览

java - java - 如何通过A类将Java中的对象从B类传递到C类而不重复

假设我有 3 节课。

  • A 类(扩展活动)
    B
    类 C 类(扩展视图)

A 创建一个包含 的 B 对象Bitmap。A 也使 C 无效。ConDraw将 a 绘制Bitmap到它的Canvas.

如何绘制BitmapB 持有的而不Bitmap在 C 中创建另一个对象?请注意,保持相同的“类结构”对我来说很重要。

这是伪代码。您可以看到这会将 2 个Bitmap对象放入内存中。谢谢!

0 投票
1 回答
28 浏览

language-agnostic - 类架构问题

就这个相当简单的问题发表了一些意见。

比如说,我有一个 DocumentParser 类,它从 Excel 电子表格中提取大量数据。捕获的数据是用另一个对象建模的,比如说“DataObject”。文档解析器构建这些对象的集合,准备好传输到大量数据集中,以便执行进一步的任务。

我的问题是,您是否会在与文档解析器相同的类中实现数据集填充,或者遵守单一职责原则,您会将其设为一个新类吗?如果它是一个单独的类,您将如何将数据对象的集合公开给该类,您是否会简单地作为参数传递?

谢谢。

0 投票
0 回答
1765 浏览

c# - NHibernate 和具有不同实现的接口

我最近开始使用 C# 和 NHibernate,所以这一切对我来说都是新手。

在我正在构建的应用程序中,我需要计算英国邮政编码之间的距离。其中一种方法是使用网格参考和毕达哥拉斯距离。另一种方法是使用谷歌地图来获取距离。

我有一个Ipostcode带有方法的接口,getDistance(IPostcode p) 并且根据实现类将与不同的表交谈。

对于网格引用,我将拥有 GridRefPostcode 对象和 DB 表:(string)postcode、(long)northing、(long)easting。

对于谷歌地图,我将谷歌地图邮政编码对象和数据库表:(字符串)邮政编码,(字符串)其他邮政编码,(双)距离。

类 Person 将有一个 field IPostcode,然后我将根据getDistance()两个类提供的距离计算距离。

现在的问题是:如何在 NHibernate 中映射这种类关系?我如何将接口融入映射?

甚至可能吗?我有一种直觉,我的班级结构需要完全改变,但这似乎是最合理的解决方案:如果我在谷歌提供的 2 个邮政编码之间有距离,我使用它,如果它不可用,我下台到网格参考。

任何想法都受到高度赞赏!

0 投票
3 回答
265 浏览

c# - 帮助重构我的 C# 代码,使其更易于维护并使用最佳编码实践

我有这个 C# 类结构,我想重构它以使用最佳编码标准(使用接口/抽象类),因此它可以更易于维护和重用。现在的代码并不糟糕,但并不理想。

我有一系列 TableItemGroup 类:AccountTableItemGroup、PendingVoteTableItemGroup 和 RequestingVoteTableItemGroup。每个 TableItemGrup 都包含一个字符串 SectionName 和一个与其对应的 TableItem 的列表 ...例如:

将来会有更多的 TableItemGroups,如果除了 List 部分之外它们都相同,我不想每次都复制代码并创建一个新组并进行微小的更改。我知道一定有更好的方法。我想继续使用 List<> 泛型,所以我以后不必再转换任何东西了。

另一部分是 TableItems。我有 AccountTableItem、PendingVoteTableItem 和 RequestingVoteTableItem。TableItem 彼此不同,但它们各自共享三个公共字符串——TitleLabel、DetailLabel 和 ImageName。但在那之后,每个 TableItem 可能有也可能没有额外的属性或方法......因此:

所以我对你们所有人的问题是,我如何重新定义我的类结构以允许尽可能多地重用代码并使用最佳编码标准?

我想有一个抽象的 TableItem 类或使用 TableItemGroup 的接口?我知道使用接口或抽象类最适合编码标准,但我不明白它会如何减少我将拥有的代码量?

非常感谢您的帮助。