samples/individualsamples/src/org/apidesign/samples/Singletons.java
author Jaroslav Tulach <jtulach@netbeans.org>
Thu, 27 Oct 2011 21:22:26 +0200
changeset 385 91c9416df025
permissions -rw-r--r--
Providing real world example of misuse of singletons
     1 package org.apidesign.samples;
     2 
     3 /** Showing some horrible usages of singletons.
     4  */
     5 public class Singletons {
     6     static {
     7         // BEGIN: singleton.no.no
     8         /** initialize singletons */
     9         Database.init();
    10         OfflineQueue.init();
    11         CreditCardProcessor.init();
    12         /** use singletons */
    13         CreditCard c =  new CreditCard(
    14           "1234 5678 9012 3456", 5, 2008
    15         );
    16         c.charge(100);
    17         // END: singleton.no.no
    18     }
    19     
    20     static final class Database {
    21         public static void init() {
    22         }
    23     }
    24 
    25     static final class OfflineQueue {
    26         public static void init() {
    27         }
    28     }
    29     
    30     static final class CreditCardProcessor {
    31         public static void init() {
    32         }
    33     }
    34 
    35     private static class CreditCard {
    36 
    37         public CreditCard(String card, int month, int year) {
    38         }
    39 
    40         private void charge(int amount) {
    41         }
    42     }
    43 }