问题标签 [class-design]

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 投票
8 回答
10552 浏览

visual-studio - Visual Studio 中的类设计器 - 值得吗?

有人在 Visual Studio 中大量使用类设计器吗?

我已经下载了 2005 年的 Modeling Power Toys,并且对我迄今为止所看到的印象深刻。MSDN 类设计器博客似乎有一段时间没有更新了,但看起来还是很有用的。

类设计器是构建基本应用程序的快速方法,还是我应该在纸上练习然后开始编码?

谢谢

0 投票
12 回答
473 浏览

editor - 班级设计师

在设计课程及其关系时,您使用什么软件,还是只使用笔和纸?

0 投票
6 回答
711 浏览

database - Should DB layer members be static or instance?

I've seen projects where the classes in the DB layer have just static functions in them and other projects where those classes need to be instantiated to get access to the member functions.

Which is "better" and why?

0 投票
31 回答
32741 浏览

uml - UML 实用吗?

在大学里,我上过许多面向设计和UML的课程,并且我认识到 UML 可以使软件项目受益,尤其是用例映射,但它真的实用吗?我已经完成了一些合作工作术语,并且似乎 UML 在行业中没有大量使用。在项目期间创建 UML 图是否值得?另外,我发现类图通常没有用,因为查看类的头文件会更快。具体来说,哪些图表最有用?

编辑:我的经验仅限于 10 个以下的小型开发项目。

编辑:许多好的答案,虽然不是最冗长的,但我相信选择的答案是最平衡的。

0 投票
18 回答
4620 浏览

c# - 列表还是 BusinessObjectCollection?

在 C# 泛型之前,每个人都会通过创建一个实现 IEnumerable 的集合库来为他们的业务对象编写集合

IE:

然后会从中派生出他们的业务对象集合。

现在有了通用列表类,有没有人用它来代替?我发现我使用了两种技术的折衷方案:

我这样做是因为我喜欢使用强类型名称,而不仅仅是传递列表。

方法是什么?

0 投票
29 回答
11245 浏览

oop - 你如何在大海捞针中找到一根针?

当以面向对象的方式实现大海捞针搜索时,您基本上有三种选择:

你更喜欢哪个?为什么?

我知道有些人更喜欢第二种选择,因为它避免引入第三个对象。但是,我不禁觉得第三种方法在概念上更“正确”,至少如果您的目标是模拟“现实世界”。

您认为在哪些情况下引入辅助对象是合理的,例如本例中的搜索器,什么时候应该避免它们?

0 投票
11 回答
13726 浏览

oop - 哪个班级设计更好?

哪个类设计更好,为什么?

或者

0 投票
1 回答
457 浏览

.net - .NET 序列化类设计问题

我们有一个相当大的对象图,需要以许多不同的方式(模式)进行序列化和反序列化。在某些模式下,我们希望对某些属性进行反序列化,而在某些模式下则不需要。在未来的模式中,属性的选项可能比 yes 或 no 更多。现在的问题是我们如何实现这些模式。

方法 A(使用反序列化构造函数和 ISerializable.GetObjectData):

如果我们让图的每个对象使用反序列化构造函数来序列化自己,我们会为所有不同的反序列化模式获得很多开关。然而,这种方法的优点是所有反序列化逻辑都在一个位置,如果我们添加新属性,我们只需要修改 ISerializable.GetObjectData 和反序列化构造函数。另一个优点是对象可能会考虑可能公开暴露的内部状态。最重要的缺点是我们数据对象本身需要了解所有可能的序列化模式。如果我们需要一个新模式,我们需要修改数据对象。

方法 B(反序列化工厂类/方法):

另一种方法是为在外部进行序列化和反序列化的每种模式(例如 GraphSerializer.SerializeObjectTypeX(ObjectTypeX objectToSerialze))设置某种反序列化工厂类/方法。这里的优点是,每当我们想要一个新模式时,我们只需添加一个新模式工厂类/方法和我们的数据对象不会因为引入的所有序列化模式而变得混乱。这里的主要缺点是我必须为所有不同的模式一遍又一遍地编写相同的序列化代码。如果两种模式只是在一两个属性,但我必须再次为整个图实现完整的逻辑。当我向数据对象添加新属性时,我需要更新所有工厂类。

所以我想知道是否有更好的方法来解决这个恕我直言的一般问题。甚至是 .NET 中的最佳实践?或者,也许我只是从错误的角度看待整个事情?

0 投票
14 回答
5420 浏览

oop - 应始终禁止受保护的属性吗?

我很少使用继承,但是当我这样做时,我从不使用受保护的属性,因为我认为它破坏了继承类的封装。

你使用受保护的属性吗?你用它们做什么?

0 投票
6 回答
336 浏览

data-structures - Is there a specific name for the node that coresponds to a subtree?

I'm designing a web site navigation hierarchy. It's a tree of nodes. Nodes represent web pages.

Some nodes on the tree are special. I need a name for them.

There are multiple such nodes. Each is the "root" of a sub-tree with pages that have a distinct logo, style sheet, or layout. Think of different departments.

site map with color-coded sub-trees http://img518.imageshack.us/img518/153/subtreesfe1.gif

What should I name this type of node?