У грі Counter-Strike Терористи і Контртерористи мають різні типи мундира. Для спрощення припустимо, що і Терористи, і Контртерористи мають по одному типу мундира. Об’єкт «мундир» вписаний в об’єкт «гравець» наступним чином:
Нижче наведена структура гравця. Як бачимо, об’єкт «мундир» вписаний в структуру гравця:
Припустимо, що у нас є 5 Терористів і 5 Контртерористів, тобто всього 10 гравців. Тоді ми маємо два можливих варіанти створення мундирів:
Кожен з 10 об’єктів гравців створює окремий об’єкт мундира і вбудовує його. Всього створюється 10 об’єктів мундирів.
Ми створюємо 2 об’єкти мундирів:
- Єдиний Об’єкт Мундира Терориста — його будуть використовувати 5 Терористів.
- Єдиний Об’єкт Мундира Контртерориста – його будуть використовувати 5 Контртерористів.
Як ми бачимо, у Варіанті 1 доведеться створити 10 об’єктів мундирів, тоді як у Варіанті 2 ми створюємо лише 2 об’єкти. Другий підхід — це суть патерна проектування Легковаговик. Два об’єкти мундирів, створені нами, називають легковаговими об’єктами.
Патерн Легковаговик знаходить однакові елементи і створює легковагові об’єкти. Ці легковагові об’єкти (мундири) в подальшому можуть бути поширені між декількома об’єктами (гравці). Така практика значно зменшує кількість об’єктів мундирів, а головне — навіть якщо ми створимо більше гравців, їм однаково буде достатньо лише двох об’єктів мундирів.
Використовуючи патерн Легковаговик, ми зберігаємо легковагові об’єкти в полях карти. Коли створюються інші об’єкти, що розділяють між собою легковагові об’єкти, легковаговики завантажуються з карти.
Тепер давайте подумаємо над тим, які частини цієї системи будуть входити до «внутрішнього» або «зовнішнього стану»:
Внутрішній стан: Мундир належить до внутрішнього стану, оскільки він використовується декількома об’єктами Терористів і Контртерористів.
Зовнішній стан: Місцезнаходження та зброя гравця належать до зовнішнього стану, оскільки у кожного об’єкта вони різні.