我认为违反的原则可以是开闭的,但我如何解决这个问题?
public void driveCar(Car car) {
if(car instanceof PersonalCar){
((PersonalCar) car).drive();
}else if (car instanceof SportCar){
((SportCar) car).driveFast();
}
}
是的,开闭原则,因为如果你添加了一种新型汽车,你还必须修改driveCar的方法。要解决这个问题,需要消除条件(if语句),并用继承替换它们,并重写每个car子类中的drive()方法。我将把实现留给您来完成。
本文向大家介绍设计用例原则有哪些?相关面试题,主要包含被问及设计用例原则有哪些?时的应答技巧和注意事项,需要的朋友参考一下 100%的覆盖需求 编写测试用例的方法 大纲法 等价类 边界值 因果图 场景法 正交法 错误推断法 BUG的优先级 P1应立即修复的问题 P2在产品发布之前必须修复的问题 P3如果时间允许应该修复的问题 P4可以在发布版本中存在的问题 P5可改可不改,无伤大雅
能接触到的常见问法: 项目中有用到什么设计模式?(前端更多点) 重构使用了什么设计模式?(如果你项目强调了重构一般会问) 说说对 XX 模式的理解?(个人接触过的是单例和工厂,这两个比较多) 有接触到哪些?实际用到过哪些?(通用) 除了这些,还有一些不常见的进阶和基础问法,这些直接在下面整理 -- 设计模式这个主题还挺玄乎的,个人直观体验是,自己日常实习那段时间问得挺频繁的,可能是因为没啥好问的。
现在,让我们来看看“燃料”类: 以上是完成的所有抽象类,现在让我们看看具体的实现。首先,fuel的两个具体实现,包括一些贫血接口,以便我们可以正确地键入-提示/嗅探它们: 最后,我们有了车辆的具体实现,它确保使用正确的燃料类型(接口)为特定的车辆类别加油,如果不兼容则抛出异常: null
本文向大家介绍使用HTML5需要遵守哪些设计原则?相关面试题,主要包含被问及使用HTML5需要遵守哪些设计原则?时的应答技巧和注意事项,需要的朋友参考一下 合适的使用语义化标签 合适指合适的场景,如: 1、自然语言表达能力的补充; 2、适合机器阅读的整体结构
问题内容: 我的情况与Code Complete中Steve McConnell 提到的情况非常相似。我唯一的问题是基于车辆,而三轮车恰好是根据法律,属于汽车。到目前为止,汽车只有四个轮子。无论如何,我的域都不必要地复杂,因此很容易遵循下面的cats示例。 对重写例程并且在派生例程中不执行任何操作的类要保持怀疑。这通常表明基类的设计存在错误。例如,假设您有一个Cat类和一个例程Scratch(),
主要内容:1.迪米特法则,2.高内聚,3.松耦合,4.代码,5.总结1.迪米特法则 迪米特法则的英文翻译是:Law of Demeter,缩写是 LOD。 单从这个名字上来看,我们完全猜不出这个原则讲的是什么。不过,它还有另外一个更加达意的名字,叫作最小知识原则,英文翻译为:The Least Knowledge Principle。 它不像 SOLID、KISS、DRY 原则那样,人尽皆知,但它却非常实用。利用这个原则,能够帮我们实现代码的“高内聚、松耦合” “