Есть диапазоны цен (Низкий, Средний, Высокий). Диапазоны цен различны для разных типов продукта.Предложение дизайна шаблона Java. (Обработчик со статическими параметрами и методами)
У меня есть класс обработчика, который содержит все диапазоны цен и может определять ценовой диапазон продукта.
Например:
Продукт А, Цена: 200, Диапазон цен: 50-300 (середина)
Продукт B, цена: 80, Диапазон цен: 70-120 (высокий)
public class Handler {
// static priceRangeMap for Price ranges
public static void addPriceRange(PriceRange PriceRange){
//add price ranges to the priceRangeMap
//initialised when the application is started
}
public static String getClassificationForProduct(ProductData product) {
//determine classification for a product
}
}
public class ProductData {
public String getClassification() {
return Handler.getClassificationForProduct(this);
}
}
Я не хочу хранить ценовые диапазоны в продукте, потому что есть много продуктов, которые имеют одинаковые диапазоны.
Это уродливое решение?
Handler.getClassificationForProduct(this);
Есть ли лучшее решение?
Состав приходит на ум. Это не шаблон дизайна, но если вы хотите использовать повторно используемые диапазоны цен, сделайте его классом. –
Есть ли способ/шаблон, чтобы узнать, похож ли Продукт A на продукт C или нет атрибута атрибута - что-либо, что их связывает? – charlypu
Что касается вашего редактирования, да, ваш класс Handler имеет плохой запах кода, начиная с его статических методов. Я думаю, тебе нужно просто избавиться от него. –