jtulach@385: package org.apidesign.samples; jtulach@385: jtulach@385: /** Showing some horrible usages of singletons. jtulach@385: */ jtulach@385: public class Singletons { jtulach@385: static { jtulach@385: // BEGIN: singleton.no.no jtulach@385: /** initialize singletons */ jtulach@385: Database.init(); jtulach@385: OfflineQueue.init(); jtulach@385: CreditCardProcessor.init(); jtulach@385: /** use singletons */ jtulach@385: CreditCard c = new CreditCard( jtulach@385: "1234 5678 9012 3456", 5, 2008 jtulach@385: ); jtulach@385: c.charge(100); jtulach@385: // END: singleton.no.no jtulach@385: } jtulach@385: jtulach@385: static final class Database { jtulach@385: public static void init() { jtulach@385: } jtulach@385: } jtulach@385: jtulach@385: static final class OfflineQueue { jtulach@385: public static void init() { jtulach@385: } jtulach@385: } jtulach@385: jtulach@385: static final class CreditCardProcessor { jtulach@385: public static void init() { jtulach@385: } jtulach@385: } jtulach@385: jtulach@385: private static class CreditCard { jtulach@385: jtulach@385: public CreditCard(String card, int month, int year) { jtulach@385: } jtulach@385: jtulach@385: private void charge(int amount) { jtulach@385: } jtulach@385: } jtulach@385: }