AWS networking

A Summarization of Singleton Pattern


Singleton Pattern is where only one instance of a class can be created.
It is known that this is one of the simplest pattern available, but There is more to this pattern than meets the eye.  UML diagram might be simple, but there is much more to understand in the implementation and usage.

singleton_myblog

 What are the situation where we should use only one object for the whole program.
  1. When using thread pools.

  2. For caching.

  3. For dialog boxes.

  4. When using logging.

  5. When using device drivers printers,graphic cards and etc.

Using singleton pattern in above situation would help to avoid issues such as,
  1. Inconsistent results

  2. Overuse of resources and etc.
One might ask, can't we use a global variable for this? why do we need a design pattern?
Singleton Pattern is a time-tested method for ensuring only one object gets created
Global variables are created when the application starts, regardless of whether we need it or not. If that objects uses some heavy resources, then the situation get worst. Singleton Pattern is not only about preventing more than one object, it is also about how to properly manage that.

 How to make a class Singleton


No public constructor means there is no way to create an instance of this class. Only way is to call getInstance and get the existing unique object.

Qualities of Singleton

  1. Creates a unique object.

  2. Singleton class is just like a normal class, but can create only one instance.

  3. By using this pattern, we can avoid bugs and conflicts in the program.

  4. Constructor of a Singleton class in private.

  5. When we need an instance of that class, we don't create. We request.

  6. Singleton class has a static method to return the instance (example :- getInstance()).

Example :-

This pattern can be used to share the configuration values through out the application. By implementing configuration class as singleton,  we,
  1. Provide a global point of access to configurations.

  2. Provide a caching mechanism (If we are getting config values from a db or a service call, this mechanism avoids calling the db or the service each time a config value is requested.)

Class A.java


Class Configs.java, which is the singleton class.


Class B.java and C.java, which uses the config values.


red_alert-1


ALERT


There are some series questions we need to ask before summarizing Singleton Pattern. Could the addition of threads to the program cause any issues? Purpose of using Singleton pattern is to use a unique and single instance of a class throughout the program. But when there are several threads executing the same code, there is a chance that several instances of this  singleton class can get create. Problem occurs in the IF condition where it checks the null value and creates the object.

To make the Singleton Pattern robust, we need to make it thread safe. We can make it thread safe by making getInstance() a synchronized method.
synchronized Key word prohibits two thread accessing the getInstance() method at the same time.
synchronized is needed only in the first time and no need once the unique instance is created. Using synchronize is very expensive in java. So we have to look for other options. Read more about why synchronize is expensive here, LINK

    1. If performance is not an issue in you application then use the above method, which is using synchronized key word in getInstance() method.

    2. Create the singleton object in a static initializer.

      Here the unique instance is created when the class loads. Instance is created before any thread is start using it. This method is suitable when,

      • If the application always creates and uses an instance of the singleton class.

      • If creation  and the run-time aspect of the singleton object are not formidable.

    3. Use double-checked locking : In this method we synchronize only the section we want, using Synchronized Blocks. Here double-checked locking means, check if the instance is created, if not, then synchronize. Read more about java synchronized blocks here LINK
      In the getInstance() method

      • line 3 : volatile means, appConfig variable is visible to all threads.

      • line 10 : We check appConfig for null. If appConfig is null, then only we create synchronized block.

      • line 12 : Inside the synchronized block, check again for null. If appConfig is null, then create an instance.

      If you are concerned about the performance of the system, this is the method you should use to implement singleton.

NOTE : 

  • Double-checked locking doesn’t work in Java 1.4 or earlier

  • Using multiple class loaders may break the Singleton Pattern.

  • Need to create a registry of Singletons to defeat the garbage collector for JVM earlier than 1.2. Read more about Java Classloader here LINK

green_alert

ALL CLEAR

Even-though Singleton pattern seems like a simple pattern to study, there are so many  things we need to consider when using it. Intention of this article is to provide the readers with all the essential information needed when using singleton pattern. But things doesn't stop from here, we have to keep studying update our knowledge. There might be better ways to achieve, what we are trying to achieve with Singleton Pattern.

Reference :
  1. Head First Design Pattern :  5. The Singleton Pattern: One of a Kind Objects

  2. Singleton Pattern : http://www.oodesign.com/singleton-pattern.html

Comments

  1. Ahaa, its good dialogue on the topic of this piece of writing here at this webpage,
    I have read all that, so at this time me also commenting at this place.

    ReplyDelete
  2. 3bMM3S http://www.FyLitCl7Pf7ojQdDUOLQOuaxTXbj5iNG.com

    ReplyDelete
  3. Surrogacy is very famous in different countries. The basic cause of it – a female become the arrival child’s mommy after childbirth. A lot of wifes wish be a mom, but some of them couldn’t be.

    By this reason in last years a new data appeared – surrogacy.
    When gestation is medically impracticable, there is only one road to be a mommy. It is surrogate. Principle, in these events use monetary compensation.

    Actually, to search a healthy wife – needed to find company which provide this kind of help.
    We advice to use this how much does a surrogate make company. In these medical clinic in Ukraine a lot of womant from US, United Kingdom and other E.U. regions became surrogate mummy.

    According to the act surrogacy is lawful. The legality and charges of surrogacy are very diverse. It depend from country, faith, color of hair, etc. In our hospitals you can make a option about kind of surrogate.

    We recommend for all our clients to take traditional surrogacy. But our serve contains gestational surrogacy. In Feskov agencies are designation for surrogacy.

    When you enter to our company located in Ukraine - a member of Feskov Human Reproduction Group, you obtain a administrator. This manager will advise you about different things from the start till the ending. As rule, surrogacy keep on 9 months. Then the administrator prepares all need documents and you can take the child.

    Also, the administrator consults your family next months. It you request to receive a child, we recommend to go there www.mother-surrogate.com. Managers which are able to help there are very talented. They will answer for all your requests. If you need any care, they will help you.

    Also they will gave acts before this mode.
    On web-site you can detect contacts. Also you can detect prices and help. Technical support can answer you at English. You can make select of it.

    If you want to obtain advise about mother surrogate as a process, professor Feskov will provide view for you.

    ReplyDelete
  4. Сертифицированный дисконт online магазин спортивной обуви Nike в Москве

    В столицу наконец пришла настоящая весна, а это значит что настала пора снимать громоздкие зимние ботинки и переобуваться в более комфортную летнюю обувь. Сертифицированный дилер Nike в РФ https://justnike.ru/muzhchiny/muzhskie-krossovki-nike-air-presto-se-belyj предлагает вам приобрести профессиональные кроссовки для тренировок или ежедневной носки из обновленной коллекции летнего сезона этого года.

    В настоящее время Nike заслуженно считается одним из трёх лидеров рынка качественной спортивной обуви на планете: их кроссовки носят для тренировок именитые спортсмены; политики, звезды поп-кульуры и другие лидеры мнений не стесняются появляться на улице именно в кроссовках Найк.

    Если вам захотелось nike дисконт официальный сайт , то вам следует воспользоваться услугами доверенного реселлера Nike в РФ, а не испытывать удачу в бутиках. Китайские подпольные заводы очень активно подделывают наши кроссовки, применяя для этого недостаточно прочные и даже опасные для здоровья материалы. Контрафактная обувь не способна прослужить и пары недель, в то время как настоящие кроссовки Nike, при постоянном уходе, без проблем прослужат несколько сезонов активного ношения.

    Работать с официальным магазином Найк в Москве - это еще и очень удобно: для приобретения обуви сегодня не нужно даже выходить из квартиры. Вы всего-навсего делаете заказ на те кроссовки которые вам понравились через онлайн корзину и ожидаете курьера. Для примерки на дому, по условиям курьерской доставки, вы сможете выбрать 3 пары кроссовок, в случае необходимости список может быть увеличен, но в данном случае за доставку потребуется доплатить. После примерки выбранных кроссовок и поиска повреждений на них, вы оплачиваете заказ курьеру и возвращаете не подошедшие вам модели.

    В онлайн магазине сертифицированного дилера американской компании в Москве вы сможете купить востребованные на рынке линейки кроссовок, в том числе легендарные AirMax и nike купить кроссовки мужские .

    Обувь в каталоге магазина удобно фильтруется по видам спорта, линейке размеров, стоимости и расцветке. Если в ходе выбора новой пары кроссовок и согласования доставки у вас возникнут сложности, то уладить всё вам поможет консультант магазина в специальном online чате.


    Важные моменты доставки вы можете указать в ходе телефонного разговора или специальном поле в корзине сайта при оформлении заказа. Покупайте фирменную спортивную обувь Nike в Москве, ведите здоровый образ жизни и получайте большой заряд бодрости и здоровья ежедневно!

    ReplyDelete
  5. В ДНР сообщили о гибели двух военнослужащих

    За минувшие сутки на территории самопровозглашённой Донецкой народной республики погибли двое ополченцев. Об этом сообщил начальник пресс-службы сил ДНР Даниил Безсонов.
    «При защите республики погибли двое военнослужащих», — приводит его слова Донецкое агентство новостей.

    Подробности произошедшего не сообщаются.

    Ранее стало известно, что Киев уменьшит количество блокпостов в Донбассе.

    Также член комитета Госдумы по международным делам Виталий Милонов в беседе с ФАН прокомментировал заявление руководителя МВД Украины Арсена Авакова касательно плана по «деоккупации» Донбасса.

    Партнеры: У вас сложная финансовая ситуация? Срочно нужны деньги? Взять срочный займ вы можете на сайте - http://все-займы-тут.рф/срочные-займы-12-05-2018

    ReplyDelete

Post a Comment