我读到的关于BDD的内容越多,以及它应该如何改进TDD,这对我来说就更加混乱了.我发现专家的引言说它是关于设计的,但也有其他专家说这是关于分析的.
我目前看到它的方式是这样的:
1)分析:BDD
来自维基百科
面向对象分析的结果是以概念模型的形式描述系统在功能上需要做什么.
所以在BDD之后我们有了要求(故事和场景).但我不确定概念模型部分.
2)设计:例如使用CRC卡的可靠性驱动设计等工具
3)代码:编码设计,可选择使用测试(就像他们所说的TDD做错了,我也觉得有用)
我怎么看错了?我现在很难看到森林穿过树林.
这个优秀的OO设计假设您希望每个继承类都是无限的线程吗?做类似的事情有更好/更优雅的方式吗?
public abstract class Base implements Runnable {
protected abstract void doSomething();
public void run() {
while ( true ) {
Thread.sleep(1000);
doSomething();
}
}
}
Run Code Online (Sandbox Code Playgroud) 基本上我有一个名为Asset的类,它包含我系统中Asset的所有信息.这可能会变得非常大(资产有缩略图,文件名,元数据,评级,评论等).
在我的结果页面上,我列出了所有符合特定条件的资产,然后可以使用jQuery进行过滤.
我在IE8中发现了性能问题,所以我做的第一件事就是查看Asset类,看看在页面上显示Asset是不需要的.(后来我访问了我的jQuery,发现它是造成性能问题的原因).
所以,当我把我的课程剥离到基础时,我从那里做了BaseAsset和派生的资产.
我的问题是,我需要这样做吗?有什么需要吗?
我会在必要时提供示例,但我现在正在禁止,因为帖子可能变得很大:)
我们的商业模式需要识别不同类型的车辆.例如,摩托车,船,游艇,农场设备,雪地车,重型卡车,轻型卡车,乘用车和"其他".
我认为有两种方法可以处理它:创建一个带有几个子类的Vehicle类,比如船,卡车,汽车,并有一个枚举指示实际类型.这可以工作,允许您表示与公共子类共享一些共同特征的车辆.但是它允许你在类中使用不匹配的枚举.
我认为处理它的传统方法是为每种类型设置一个单独的子类,它可以是车辆的子类或车辆的子类.例如,重型和轻型卡车可能是卡车的子类; 船和游艇可能是船的子类; 雪地摩托车可能是车辆的子类.问题是,它并不能真正代表其他概念.
有没有人对这些场景有任何模式或最佳实践?
彼得
编辑: 目标的目的是传达有关车辆的信息,并能够以用户友好的方式显示该信息.例如,从数据库中提取数据并将其显示在要查看/编辑的屏幕上.
这导致了传统OO手段的另一个缺点,即偏离实际类型的类型指示器,因为它显示了需要执行某种实例的类型并将值转换为用户友好的类型.
(另外,澄清我说的是单个枚举,而不是每个子类的枚举.)
我知道类本质上是对象的蓝图,但是类对对象的“抽象”的想法让我难以理解……如果有人能告诉我声明:“类是对象的抽象”,我将不胜感激。
我的困惑是因为不同的人对这一说法的理解不同。
“抽象”是指:
还是意味着:
在此先感谢,Abhigyan
有人可以解释一下系统设计和面向对象设计之间的区别吗?
面向对象的设计涉及对象建模,并使用诸如抽象,封装,分解和概括之类的面向对象的概念。这两个设计都涉及建筑设计和概念设计。
是其他设计范式的子集之一吗?
architecture oop system-design object-oriented-analysis object-object-mapping
我正在创建一个程序,其中我有称为"层次结构"的对象,它只是带有ArrayList<ArrayList<String>>带适当getter的strings()的列表列表.
用户应该能够选择这些层次结构的表示/格式 - 例如,层次结构[1,2,3,4]是否应该表示为{1,2,3,4}或(1-4)或其他,在将其写入文件之前.
是否有一种聪明/标准的方法来进行这种数据和格式分离?我正在考虑创建一个"FormattedHierarchy"对象,它只包含一个Hierarchy-object和一个Formatting-object,但我不知道这是不是一个好的设计选择.
感谢您的任何指示/提示/答案.
状态图表,状态机图和状态转换图之间有什么区别?在几个地方我得知状态图表和状态机图表意思相同,但在某些地方它显示为不同.我只能看出状态图表代表系统在某个时刻的状态状态机图表显示了它们在整个生命周期中的对象和转换.
大约 4 个月前,我用 Swift 启动了一个新的 iOS 项目,只是为了学习这门语言。当我开发它时,我发现自己几乎从未在整个程序中使用元组。这是因为我真的习惯了没有元组的Java和Objective-C。
我听说过一些关于元组的伟大事情,Apple 似乎对将它们添加到 Swift 中感到非常兴奋,但似乎我很难为它们找到真正有用的案例。
到目前为止,我理解并使用它们是为了一件事:快速类替换器。不要仅仅为了将一些属性保留在一起而创建一个新类,而是使用元组。但即便如此,我也只使用了一次元组,因为很多时候这些属性会相互影响,所以那些改变这些属性的方法最好包含在具有这些属性的类中。那么这真的是一个优势吗?
但是,元组新手应该了解 OOP(或 Swift)中使用的其他一些真正有用的设计模式吗?
谢谢!
我正在研究一个简单的Java应用程序,并且我创建了一个名为Config.java的类来处理Application属性,从而避免了硬编码.
Config.java类不是静态类,我在另一个名为Serial.java的类中创建Config.java类的实例.
main方法位于另一个名为App.java的类中.所以我总共有3个类:
在这个阶段,一切都很好,OOP设计中没有任何缺陷.但是,我需要创建另一个类,我必须从Config.java类中调用方法.为了只有一个Config.java类的实例,最好的方法是什么:
我是否可以使用更多选项/技术来实现我的目标.
任何帮助或建议都非常感谢.