Отладка Pyspark в кластере [дубликат]

Рассказ: почтальона просят вернуться домой домой и получить обложки (письма, документы, чеки, подарочные карты, приложения, любовью) с адресом, написанным на нем для доставки.

Предположим, что есть нет обложки и попросите человека повести домой домой и получить все вещи и доставить другому человеку почтальон может запутаться,

, так что лучше оберните его обложкой (в нашей истории это интерфейс), тогда он

Теперь почтальон должен получать и доставлять только обложки .. (он не беспокоился о том, что внутри обложки).

Создайте тип interface не действительный тип, но реализуется с фактическим типом.

Создать для интерфейса означает, что ваши компоненты легко вставляются в остальную часть кода

Я приведу вам пример.

у вас есть интерфейс AirPlane, как показано ниже.

interface Airplane{
    parkPlane();
    servicePlane();
}

Предположим, что у вас есть методы в вашем классе контроллеров Planes, например

parkPlane(Airplane plane)

и

servicePlane(Airplane plane)

реализованы в вашей программе. Это не BREAK ваш код. Я имею в виду, что он не должен меняться, пока он принимает аргументы как AirPlane.

Поскольку он будет принимать любой самолет, несмотря на фактический тип, flyer, highflyr, fighter и т. Д. .

Кроме того, в коллекции:

List<Airplane> plane; // Возьмем все ваши самолеты.

Следующий пример очистит ваше понимание.


У вас есть истребитель, который его реализует, поэтому

public class Fighter implements Airplane {

    public void  parkPlane(){
        // Specific implementations for fighter plane to park
    }
    public void  servicePlane(){
        // Specific implementatoins for fighter plane to service.
    }
}

То же самое для HighFlyer и другой классы:

public class HighFlyer implements Airplane {

    public void  parkPlane(){
        // Specific implementations for HighFlyer plane to park
    }

    public void  servicePlane(){
        // specific implementatoins for HighFlyer plane to service.
    }
}

Теперь подумайте, что ваш контроллер классы, использующие AirPlane несколько раз,

Предположим, что ваш класс Controller - это ControlPlane, как показано ниже,

public Class ControlPlane{ 
 AirPlane plane;
 // so much method with AirPlane reference are used here...
}

здесь магия появляется как

, вы можете сделать свой новый AirPlane, и вы не меняете

код класса ControlPlane.

вы можете добавить экземпляр ..

JumboJetPlane // implementing AirPlane interface.
AirBus        // implementing AirPlane interface.

вы также можете удалить экземпляры ранее созданных типов.

15
задан Toby Leheup 21 August 2015 в 14:29
поделиться