c# - 如何决定在应用程序中创建类..?

标签 c# testing class-design desktop-application

我这里遇到了一些严重的问题。我们什么时候需要上课?

具体来说,我想设计一个桌面应用程序,它能够为我指定的任意数量的方法生成分析测试或单元测试。我有一个用于存储方法的简单列表。我没想过要上课。但是现在,我想到了创建一个类来存储所有的类,并获取类中的方法集。如果这个想法是正确的,我最后4天的努力就付诸东流了。如果我能得到一些信息,那么提出一个新问题。

我也找不到方法中的头部或尾部。所以想与任何有兴趣帮助我进行设计的人讨论。

最佳答案

一般来说,定义一组数据和功能的边界的规则将被移动到它们自己的类中是single responsibility principle。 .

在 Martin Fowler 的精彩 refactoring bliki您会发现许多模式可以在类之间移动职责、数据和功能(当然,明显的 Extract Class ,但是在 Extract Method 的强大帮助下,在您的情况下, Encapsulate Collection ,也许)。

TDD是尽早勾勒设计轮廓的好方法。通常“易于测试”会导致“解耦”,从而导致关注点分离。

同时使用这两种方法(TDD+重构)可以帮助您从一种设计过渡到另一种设计:事情应该会更顺利一些。

另一个很好的指南是 DIYDI (自己做依赖注入(inject))。

此外:您要在这里进行代码生成或运行时分析吗?

在第一种情况下,您可能对 template engines 感兴趣这可能会在后处理阶段为您节省大量工作。

在第二种情况下,您可以使用 Aspect Oriented Programming和/或 Reflection检查类并找出它们有哪些方法。

关于c# - 如何决定在应用程序中创建类..?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4931813/

相关文章:

c# - Xaf 新项目有黄色三角形

c# - C# 中的 unsigned char 使用哪种数据类型?

java - 从 Jenkins 运行 Android 模拟器以使用 Robotium 运行 Junit 测试

c++ - 用另一个类的 vector 生成类的 vector 的函数声明

c++ - 内部类声明

c# - 创建可能抛出 IndexOutOfRangeException 的属性

ruby-on-rails - RSpec 测试以两种方式编写,其中一种失败

java - 使用 "real data"设置测试系统

c++ - 关于何时在 C++ 类中显式启用/禁用复制的指南?

c# - 数据表中的时区错误