Пример использования шаблона singleton
August 18th, 2009
| Tags: design-patterns, java, oop, programming, se
Следующий кусок кода “в незатейливой и шутливой форме” знакомит нас с паттерном проектирования singleton. Суть примера: у команды пиратов есть одна бутылка рома, из которой они периодически выпивают случайное количество жидкости. Когда ром кончается, пират, который обнаруживает это, становится безумным и убивает всех вокруг.
public class BottleOfRum {
private int rumAmount; // how much of rum is in the bottle (in percents)
static private BottleOfRum theBottle = null;
BottleOfRum() { // constructor
rumAmount = 100;
}
public drink(int amount) {
rumAmount -= amount;
}
public getRumAmount() {
return rumAmount;
}
public static giveMeTheBottle() {
if (theBottle == null) {
theBottle = new BottleOfRum();
}
return theBottle;
}
}
public class Pirate {
public int drinkSomeRum() {
BottleOfRum bottle = BottleOfRum.giveMeTheBottle();
// if there is some rum
if (bottle.getRumAmount() > 0) { // drink
bottle.drink( bottle.getRumAmount()*Math.random() );
} else { // become mad and kill everybody around
becomeMad();
killCrashAndDestroy();
}
return bottle.getRumAmount();
}
}
Leave a comment
| Trackback
