Я просматриваю книгу «Образцы первых образцов дизайна» и специально смотрю пример Starbuzz для шаблона Decorator
.Глава Первые образцы дизайна - узор-декоратор с использованием Starbuzz
У меня возникли проблемы с пониманием того, что именно необходимо для CondimentDecorator
в приведенном примере. Почему не может Mocha
просто увеличить Beverage
? Что нужно для другого слоя абстракции? `
public abstract class Beverage
{
String description = "Unknown beverage";
public String getDescription()
{
return description;
}
public abstract double cost();
}
public abstract class CondimentDecorator extends Beverage
{
public abstract String getDescription();
}
public class Mocha extends CondimentDecorator
{
Beverage b;
public Mocha(Beverage b)
{
this.b=b;
}
public String getDescription()
{
return b.getDescription() + ", Mocha";
}
public double cost()
{
return .20 + b.cost();
}
}
Посмотрите на поток сжатия и шифрования в .Net –
Также его лучше всего подходит здесь. http://programmers.stackexchange.com/ –
Лучше подходит для http://codereview.stackexchange.com/ также –