たんトンじょうたいか


スプリングDI容器は、デバッガとしてモノトーン管理を行います.
シングルトーンは、毎回新しいオブジェクトを作成する必要がなく、メモリを効率的に管理します.
しかし、最大の欠点は共有オブジェクトです.
そのため、モノトーンには状態値がありません.
なぜステータス値が持てないのかを調べてみましょう.

🔍 ステータス値が使用できない理由

  • モノトーンオブジェクト
  • @Getter
    @Setter
    public class SingletonT {
    
        private final static SingletonT instance = new SingletonT();
    
        private String name;
    
        public static SingletonT getInstance() {
            return instance;
        }
    
        public String setLocalVariable(String variable) {
            return variable;
        }
    
        private SingletonT() {
    
        }
    }
    上記は単一色調オブジェクトであり,テストコードを用いて実験を行う.
    これらのテストはすべて成功したテストです.
    単一色調共有オブジェクトのため、user 1は김종국であるが、user 2は송지효である
    結局、2人の会員は송지효になった.
    これが支払い金額であれば、もっと大きな問題が発生します.
    つまり、モノトーンは絶対に状態にしてはいけません.
    どうせ同時に要求することはない!!使用もできません.
    開発は一人で行うものではないので、他の開発者は他の場所から呼び出すことができます.
    class SingletonTTest {
    
        @Test
        void t() {
            SingletonT user1 = SingletonT.getInstance();
            SingletonT user2 = SingletonT.getInstance();
            
            user1.setName("김종국");
            user2.setName("송지효");
    
            assertThat(user1.getName()).isEqualTo(user2.getName());
            assertThat(user2.getName()).isEqualTo("송지효");
        }
    }
    リファクタリングソース