使用oops进行系统设计

问题描述 投票:-1回答:3

我有一个机器课。

public class Machine {



}
java oop
3个回答
1
投票

使用方法start(),stop(),isRunning(),fill(...)和getFuelType()创建一个名为'Engine'的接口,然后让SteamEngine和InternalCombustionEngine实现该接口可能是最好的方法。


1
投票

看看Interfaces

基本思路:您必须在您的机器和它可以使用的引擎之间提供合同。无论您连接到机器的引擎是什么,它都必须提供已知方法,因此机器可以控制它。

您可以使用的界面示例:

public interface Engine {

    public void start();

    public void stop();

    public void fill(FuelType fuelType, int fuelLevel);

    public FuelType getFuelType();

}

现在,每个引擎都必须实现此接口:

public class InternalCombustionEngine implements Engine {
        public void start() {
             //implementation
        }

        public void stop() {
            //implementation
        }

        public void fill(FuelType fuelType, int fuelLevel) {
            //implementation
        }

        public FuelType getFuelType() {
            //implementation
        }
}

最后,为了能够使用Engine,你最好为你提供一个Machine类接受任何实现Engine接口的对象的构造函数:

public class Machine {

     public Machine(Engine engine) {    
         this.engine = engine;
     }

     //.......

}

这种方法为您提供了一种灵活且可扩展的方式,可以相互独立地更换发动机或机器。并提供单独开发每个组件的良好可能性。


0
投票

你可以用两种方式做到这一点。

实现一个interface,它基本上只是一个只包含抽象方法和静态或最终变量的类。您可以使用关键字implements在类中实现它。

另一种方法是使用抽象类。它可以包含抽象和非抽象方法,final,non-final,static和non-static变量。您可以使用关键字extends实现它。

© www.soinside.com 2019 - 2024. All rights reserved.