# HG changeset patch # User Jaroslav Tulach # Date 1319743346 -7200 # Node ID 91c9416df02555a67fa9c0e8f619c9f5fea3967f # Parent 8232b021005dfd4c1f8317f5d5c5da85f0179f90 Providing real world example of misuse of singletons diff -r 8232b021005d -r 91c9416df025 samples/individualsamples/src/org/apidesign/samples/Singletons.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/samples/individualsamples/src/org/apidesign/samples/Singletons.java Thu Oct 27 21:22:26 2011 +0200 @@ -0,0 +1,43 @@ +package org.apidesign.samples; + +/** Showing some horrible usages of singletons. + */ +public class Singletons { + static { + // BEGIN: singleton.no.no + /** initialize singletons */ + Database.init(); + OfflineQueue.init(); + CreditCardProcessor.init(); + /** use singletons */ + CreditCard c = new CreditCard( + "1234 5678 9012 3456", 5, 2008 + ); + c.charge(100); + // END: singleton.no.no + } + + static final class Database { + public static void init() { + } + } + + static final class OfflineQueue { + public static void init() { + } + } + + static final class CreditCardProcessor { + public static void init() { + } + } + + private static class CreditCard { + + public CreditCard(String card, int month, int year) { + } + + private void charge(int amount) { + } + } +}