From dd455bf16ff2e675addf588f805e5094298d8edc Mon Sep 17 00:00:00 2001 From: CyC2018 <1029579233@qq.com> Date: Sun, 25 Feb 2018 13:53:02 +0800 Subject: [PATCH] auto commit --- notes/剑指 offer 题解.md | 60 +--------------------------------------- notes/设计模å¼�.md | 8 ++++-- 2 files changed, 6 insertions(+), 62 deletions(-) diff --git a/notes/剑指 offer 题解.md b/notes/剑指 offer 题解.md index 51793e1b..97a24945 100644 --- a/notes/剑指 offer 题解.md +++ b/notes/剑指 offer 题解.md @@ -81,65 +81,7 @@ ## 2. ʵÏÖ Singleton -**¾­µäʵÏÖ** - -ÒÔÏÂʵÏÖÖУ¬Ë½Óо²Ì¬±äÁ¿±»ÑÓ³Ù»¯ÊµÀý»¯£¬ÕâÑù×öµÄºÃ´¦ÊÇ£¬Èç¹ûûÓÐÓõ½¸ÃÀ࣬ÄÇô¾Í²»»á´´½¨¸Ã˽Óо²Ì¬±äÁ¿£¬´Ó¶ø½ÚÔ¼×ÊÔ´¡£Õâ¸öʵÏÖÔÚ¶àÏ̻߳·¾³ÏÂÊDz»°²È«µÄ£¬ÒòΪ¶à¸öÏß³ÌÄܹ»Í¬Ê±½øÈë if(uniqueInstance == null) ÄÚµÄÓï¾ä¿é£¬ÄÇô¾Í»á¶à´ÎʵÀý»¯ uniqueInstance ˽Óо²Ì¬±äÁ¿¡£ - -```java -public class Singleton { - private static Singleton uniqueInstance; - private Singleton() { - } - public static Singleton getUniqueInstance() { - if (uniqueInstance == null) { - uniqueInstance = new Singleton(); - } - return uniqueInstance; - } -} -``` - -**Ï̲߳»°²È«ÎÊÌâµÄ½â¾ö·½°¸Ò»** - -Ö»ÐèÒª¶Ô getUniqueInstance() ·½·¨¼ÓËø£¬¾ÍÄÜÈø÷½·¨Ò»´ÎÖ»ÄÜÒ»¸öÏ̷߳ÃÎÊ£¬´Ó¶ø±ÜÃâÁË¶Ô uniqueInstance ±äÁ¿½øÐжà´ÎʵÀý»¯µÄÎÊÌâ¡£µ«ÊÇÕâÑùÓÐÒ»¸öÎÊÌâÊÇÒ»´ÎÖ»ÄÜÒ»¸öÏ߳̽øÈ룬ÐÔÄÜÉÏ»áÓÐÒ»¶¨µÄÀË·Ñ¡£ - -```java -public static synchronized Singleton getUniqueInstance() { - if (uniqueInstance == null) { - uniqueInstance = new Singleton(); - } - return uniqueInstance; -} -``` -**Ï̲߳»°²È«ÎÊÌâµÄ½â¾ö·½°¸¶þ** - -²»ÓÃÑÓ³ÙʵÀý»¯£¬²ÉÓÃÖ±½ÓʵÀý»¯¡£ - -```java -private static Singleton uniqueInstance = new Singleton(); -``` - -**Ï̲߳»°²È«ÎÊÌâµÄ½â¾ö·½°¸Èý** - -¿¼ÂǵÚÒ»¸ö½â¾ö·½°¸£¬ËüÊÇÖ±½Ó¶Ô getUniqueInstance() ·½·¨½øÐмÓËø£¬¶øÊµ¼ÊÉÏÖ»ÐèÒª¶Ô uniqueInstance = new Singleton(); ÕâÌõÓï¾ä¼ÓËø¼´¿É¡£Ê¹ÓÃÁ½¸öÌõ¼þÓï¾äÀ´ÅÐ¶Ï uniqueInstance ÊÇ·ñÒѾ­ÊµÀý»¯£¬Èç¹ûûÓÐʵÀý»¯²ÅÐèÒª¼ÓËø¡£ - -```java -public class Singleton { - private volatile static Singleton uniqueInstance; - private Singleton() { - } - public static synchronized Singleton getUniqueInstance() { - if (uniqueInstance == null) { - synchronized (Singleton.class) { - if (uniqueInstance == null) { - uniqueInstance = new Singleton(); - } - } - } - return uniqueInstance; - } -} -``` +[µ¥Àýģʽ](https://github.com/CyC2018/InterviewNotes/blob/master/notes/%E8%AE%BE%E8%AE%A1%E6%A8%A1%E5%BC%8F.md#%E7%AC%AC-5-%E7%AB%A0-%E5%8D%95%E4%BB%B6%E6%A8%A1%E5%BC%8F) ## 3. Êý×éÖÐÖØ¸´µÄÊý×Ö diff --git a/notes/设计模å¼�.md b/notes/设计模å¼�.md index c4e44538..ba7d08f5 100644 --- a/notes/设计模å¼�.md +++ b/notes/设计模å¼�.md @@ -491,7 +491,9 @@ CheesePizza **3. ģʽÀàͼ** -ÔÚ¼òµ¥¹¤³§ÖУ¬´´½¨¶ÔÏóµÄÊÇÁíÒ»¸öÀ࣬¶øÔÚ¹¤³§·½·¨ÖУ¬ÊÇÓÉ×ÓÀàÀ´´´½¨¶ÔÏó¡£¹¤³§·½·¨³£ÓÃÔÚÔÚÿ¸ö×ÓÀà¶¼ÓÐ×Ô¼ºµÄÒ»×é²úÆ·Àà¡£¿ÉÒÔΪÿ¸ö×ÓÀà´´½¨µ¥¶ÀµÄ¼òµ¥¹¤³§£¬µ«ÊǰѼòµ¥¹¤³§Öд´½¨¶ÔÏóµÄ´úÂë·Åµ½×ÓÀàÖÐÀ´¿ÉÒÔ¼õÉÙÀàµÄÊýÄ¿£¬ÒòΪ×ÓÀ಻ËãÊDzúÆ·À࣬Òò´ËÍêÈ«¿ÉÒÔÕâô×ö¡£ +ÔÚ¼òµ¥¹¤³§ÖУ¬´´½¨¶ÔÏóµÄÊÇÁíÒ»¸öÀ࣬¶øÔÚ¹¤³§·½·¨ÖУ¬ÊÇÓÉ×ÓÀàÀ´´´½¨¶ÔÏó¡£ÏÂͼÖУ¬Creator ÓÐÒ»¸ö anOperation() ·½·¨£¬Õâ¸ö·½·¨ÐèÒªÓõ½Ò»×é²úÆ·À࣬Õâ×é²úÆ·ÀàÓÉÿ¸ö×ÓÀàÀ´´´½¨¡£ + +¿ÉÒÔΪÿ¸ö×ÓÀà´´½¨µ¥¶ÀµÄ¼òµ¥¹¤³§À´´´½¨Ã¿Ò»¸ö²úÆ·À࣬µ«ÊǰѼòµ¥¹¤³§Öд´½¨¶ÔÏóµÄ´úÂë·Åµ½×ÓÀàÖÐÀ´¿ÉÒÔ¼õÉÙÀàµÄÊýÄ¿£¬ÒòΪ×ÓÀ಻ËãÊDzúÆ·À࣬Òò´ËÍêÈ«¿ÉÒÔÕâô×ö¡£ ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/903093ec-acc8-4f9b-bf2c-b990b9a5390c.jpg) @@ -599,7 +601,7 @@ ChicagoStyleCheesePizza is making.. **1. Éè¼ÆÔ­Ôò** -**ÒÀÀµµ¹ÖÃÔ­Ôò**£ºÒªÒÀÀµ³éÏ󣬲»ÒªÒÀÀµ¾ßÌåÀà¡£ÌýÆðÀ´ÏñÊÇÕë¶Ô½Ó¿Ú±à³Ì£¬²»Õë¶ÔʵÏÖ±à³Ì£¬µ«ÊÇÕâ¸öÔ­Ôò˵Ã÷ÁË£º²»ÄÜÈø߲ã×é¼þÒÀÀµµ×²ã×é¼þ£¬¶øÇÒ£¬²»¹Ü¸ß²ã»òµ×²ã×é¼þ£¬Á½Õß¶¼Ó¦¸ÃÒÀÀµÓÚ³éÏó¡£ÀýÈ磬ÏÂͼÖÐ PizzaStore ÊôÓڸ߲ã×é¼þ£¬µ«ÊÇËüÒÀÀµÓڵײã×é¼þ Pizza µÄ¾ßÌåÀà¡£Èç¹ûÒÀÀµµÄÊÇ Pizza µÄ³éÏóÀ࣬ÄÇô¾Í¿ÉÒÔ²»ÓùØÐÄ Pizza µÄ¾ßÌåʵÏÖϸ½Ú¡£ +**ÒÀÀµµ¹ÖÃÔ­Ôò**£ºÒªÒÀÀµ³éÏ󣬲»ÒªÒÀÀµ¾ßÌåÀà¡£ÌýÆðÀ´ÏñÊÇÕë¶Ô½Ó¿Ú±à³Ì£¬²»Õë¶ÔʵÏÖ±à³Ì£¬µ«ÊÇÕâ¸öÔ­Ôò˵Ã÷ÁË£º²»ÄÜÈø߲ã×é¼þÒÀÀµµ×²ã×é¼þ£¬¶øÇÒ£¬²»¹Ü¸ß²ã»òµ×²ã×é¼þ£¬Á½Õß¶¼Ó¦¸ÃÒÀÀµÓÚ³éÏó¡£ÀýÈ磬ÏÂͼÖÐ PizzaStore ÊôÓڸ߲ã×é¼þ£¬ËüÒÀÀµµÄÊÇ Pizza µÄ³éÏóÀ࣬ÕâÑù¾Í¿ÉÒÔ²»ÓùØÐÄ Pizza µÄ¾ßÌåʵÏÖϸ½Ú¡£ ![](https://github.com/CyC2018/InterviewNotes/blob/master/pics/ddf72ca9-c0be-49d7-ab81-57a99a974c8e.jpg) @@ -792,7 +794,7 @@ public class Singleton { private Singleton() { } - public static synchronized Singleton getUniqueInstance() { + public static Singleton getUniqueInstance() { if (uniqueInstance == null) { synchronized (Singleton.class) { if (uniqueInstance == null) {