Правильный способ проектирования с использованием oop и множественного наследования в Java - PullRequest
0 голосов
/ 29 сентября 2018

Предположим, у нас есть магазин, и мы продаем 3 товара.Мы продаем конфеты, корзины и подарки.

Таким образом, клиент может купить:

  • Конфеты
  • Корзины
  • Подарки (подарок определяется как корзина полная конфет плюс декоративная лента)

IЯ хочу добиться этого, используя Java-наследование, поэтому я сделал следующее:

public class Candies {

    private int weight;

    public Candies(int weight){
        this.weight = weight;
    }

    //setters & getters
}

public class Baskets{

    private String color;
    private int weight;

    public Baskets(String color, int weight){
        this.color = color;
        this.weight = weight;
    }

    //setters & getters
}

public class Present {

    private String ribbon_color;

    //....
}

Теперь проблема в том, что, когда клиент хочет купить подарок (который содержит и конфеты, корзины и ленту), мне нужноотдельный класс Present, который создает объект candy и basket .Я знаю, что множественное наследование не разрешено в Java, поэтому я застрял на том, как я могу реализовать это.

Я мог бы определить конфеты и корзины как интерфейсы и иметь класс Present, который реализует оба интерфейса, но является ли это наиболее эффективным и правильным способом сделать это?

1 Ответ

0 голосов
/ 29 сентября 2018

Я думаю, что вы можете создать Id в каждом классе Candies, Baskets and Presents.

Затем вы можете создавать Предметы, включающие в себя: Id, cate (Id для сохранения Id конфет, корзин, подарков; cate для пояснения этогопункт находится в конфетах, корзинах или подарках).

Как это:

public class Candies {

    private int Id;
    private int weight;

    public Candies(int Id, int weight) {
        this.Id = Id;
        this.weight = weight;
    }


    //setters & getters
}

public class Baskets{

    private int Id;
    private String color;
    private int weight;

    public Baskets(int Id, String color, int weight) {
        this.Id = Id;
        this.color = color;
        this.weight = weight;
    }

    //setters & getters
}

public class Present {

    private int Id;
    private String ribbon_color;

    public Present(int Id, String ribbon_color) {
        this.Id = Id;
        this.ribbon_color = ribbon_color;
    }

    //setters & getters
}

public class Items {

    private int Id;
    private String cate;

    public Items(int Id, String cate) {
        this.Id = Id;
        this.cate = cate;
    }

    //setters & getters
}

Теперь вы можете делать покупки со списком предметов.

Надеюсь, что это полезно!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...