singletonTest3
package com.icia.example4;
import lombok.AccessLevel;
import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
@AllArgsConstructor
class Saram {
int height;
}
class SaramService {
private static SaramService service = new SaramService();
private SaramService() {
}
public static SaramService getInstance(){
return service;
}
public void printWeight(Saram saram){
System.out.printIn(saram.height-100);
}
}
public class singletonTest3 {
public static void main(String[] args){
Saram s1 = new Saram(175);
Saram s2 = new Saram(180);
SaramService sevice = SaramService.getInstance();
service.printWeight(s2);
}
}
getInstance()
- 싱글턴패턴으로 하나의 인스턴스만 가지고 공유해서 사용.
- 생성자를 private로 선언하여 다른 클래스에서 해당 클래스의 인스턴스를 new로 생성하지 못하게 하고 getInstace()함수를 통해서만 인스턴스를 갖도록 한다.
singletonTest4
class ShopService {
private static ShopService service = new ShopService();
private ShopService(){
}
public static ShopService getInstance(){
return service;
}
}
public class singletonTest4 {
public static void main(String[] args){
ShopService obj1 = ShopService.getInstance();
ShopService obj2 = ShopService.getInstance();
if(obj1===obj2) System.out.printIn("같은 서비스 객체");
else System.out.printIn("다른 서비스 객체");
}
}