Reklamy środków czystości są niepowtarzalnie wręcz obleśne. Czy nikt tym wstrząśniętym stanem swojego kibla czy zlewu ”gospodyniom” nie uświadomił, że zbierać brud i syf powinno się częściej niż raz na rok? I piękny blask powstały po przejechaniu czystą szmatą po megabrudnej powierzchni niekoniecznie musi być wynikiem wylania na tąże szmatę litra reklamowanego właśnie detergentu.
To tak jakby z C# usunąć interfejs IDisposable oraz konstrukcję using (coby o zbieraniu brudów nie było tak łatwo pamiętać). A “rekwizyty reklamowe” powinny dziedziczyć z klasy:
1: public abstract class KitchenItem
2: {
3: private readonly Timer _timer;
4:
5: protected KitchenItem()
6: {
7: GC.KeepAlive(this);
8:
9: _timer = new Timer { AutoReset = true };
10: _timer.Interval = TimeSpan.FromDays(365).TotalMilliseconds;
11: _timer.Elapsed += (s, e) => YearlyCleaning();
12: _timer.Start();
13: }
14:
15: protected abstract void YearlyCleaning();
16:
17: public void Dispose()
18: {
19: throw new UnintendedCleaningException("Wait until I am really dirty, you bastard!");
20: }
21: }