Java 驾驶室服务设计模式
我试图理解设计模式和实现抽象工厂模式的想法,以了解如何设计像ola、uber这样的cab服务 我开始的时候有点像下面这样的阶级隔离,但后来被卡在那里了Java 驾驶室服务设计模式,java,design-patterns,Java,Design Patterns,我试图理解设计模式和实现抽象工厂模式的想法,以了解如何设计像ola、uber这样的cab服务 我开始的时候有点像下面这样的阶级隔离,但后来被卡在那里了 /* Ola has car type as Auto, micro, mini, prime. * Later add share car type. * * Add cars to the car type * */ enum CarType{ MINI, MICRO, AUTO, PRIME; } public cl
/* Ola has car type as Auto, micro, mini, prime.
* Later add share car type.
*
* Add cars to the car type
* */
enum CarType{
MINI, MICRO, AUTO, PRIME;
}
public class OlaImplementationAbstract {
public static void main (String[] ags) {
}
}
class carFactory{
}
abstract class Car {
public double fare(double distTravelled) {
return distTravelled;
}
}
class Mini extends Car {
public double fare(double distTravelled) {
return 9 * distTravelled;
}
}
class Micro extends Car {
public double fare(double distTravelled) {
return 8 * distTravelled;
}
}
class Auto extends Car {
public double fare(double distTravelled) {
return 7 * distTravelled;
}
}
class Prime extends Car {
public double fare(double distTravelled) {
return 10 * distTravelled;
}
}
无法理解如何进一步进行。我只是想知道,如果我设计了这样一个东西,该怎么做 据我所知,你对和有点困惑。您将要实现的是返回
Car
的工厂方法,它可以通过以下代码实现:
class carFactory{
//use getCar method to get object of type Car
public Car getCar(CarType carType){
switch(carType){
case MINI:
return new Mini();
case MICRO:
return new Micro();
case AUTO:
return new Auto();
case PRIME:
return new Prime();
}
return null;
}
}
事实上,抽象工厂用于某些情况,即存在具有相同方法的不同工厂类,但在您的场景中,只有一些具有相同方法的类。谢谢。如果我必须通过稍微改变这个场景来实现一个抽象工厂。那会是什么样子。你能帮我吗。可能这是因为我能够更好地理解它们之间的区别。@user1896796在当前代码中,实现了
抽象工厂
是没有意义的,但是您可以看到包含此模式,它与您的代码非常相似。