gpt4 book ai didi

java - 对于这种不明确定义的继承,正确的设计模式是什么?

转载 作者:行者123 更新时间:2023-12-02 06:02:23 25 4
gpt4 key购买 nike

假设我们有一个类 Car ,其子类为 mini 和 sedan,两者都有相同的安全检查,我调用一个名为 safety() 的通用函数,它就像一个模板。所以:

class Car {
safety() {
check1();
check2();
check3();
check4();
}
}

class Mini extends Car {
// use the safety() belonging to Car
}


class Sedan extends Car {
// use the safety() belonging to Car
}

但是事情发生了变化,我们有了新的类型和新的安全性

  1. sports 需要 check1、check3 和新的 check5
  2. jeep 需要 check1、check4 和新的 check6
  3. 豪华仅需要check2和check3

哪些设计模式可以帮助我们解决这个问题?

最佳答案

忘记模式并以适合您的用例的方式实现您的类。在你的例子中,我认为安全性并不是汽车的真正属性,而是应用到汽车的某些程序的结果。

class CrashTestDummy
{
public Safety check(Car car) {...}
public Safety check(Mini mini) {...}
public Safety check(Sedan sedan) {...}
}

通过这种方式,您可以比较彼此的安全性,根据它们做出决策,汇总它们或随着时间的推移保存它们。

关于java - 对于这种不明确定义的继承,正确的设计模式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22570887/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com