디자인 모델 의 공장 모델, 단일 모델

자바 는 23 가지 디자인 모델 (프로 그래 밍 사상/프로 그래 밍 방식) 이 있 습 니 다. 디자인 모델 에 의 해 경화 되 지 말고 모든 코드 를 마음대로 작성 하 십시오.
공장 모드  단일 모드  에이전트 모드   어댑터 모드   관찰자 모드   MVC 모드  등등
공장 모드
 하나의 공장 류 를 만들어 같은 인 터 페 이 스 를 실현 한 일부 종 류 를 인 스 턴 스 로 만 드 는 것 이다.
인터페이스
public interface Fruit {
	public void print();
}

2 개 실현 클래스
public class Apple implements Fruit{
	
	@Override
	public void print() {
		System.out.println("我是一个苹果");
	}

}
public class Orange implements Fruit{

	@Override
	public void print() {
		System.out.println("我是一个橘子");
	}

}

공장 류
public class FruitFactory {
	public Fruit produce(String type){
		if(type.equals("apple")){
			return new Apple();
		}else if(type.equals("orange")){
			return new Orange();
		}else{
			System.out.println("请输入正确的类型!");  
            return null; 
		}
	}
}

테스트 클래스
public class FactoryTest {

	public static void main(String[] args) {
		FruitFactory factory = new FruitFactory();
		Fruit apple = factory.produce("apple");
		apple.print();
	}

}

단일 모드
단일 모델 은 디자인 모델 에서 가장 흔히 볼 수 있 고 가장 간단 한 디자인 모델 로 프로그램 에 하나의 사례 만 존재 하도록 확보한다.
역할     단일 모드 (Singleton): 하나의 인 스 턴 스 만 있 고 전체 방문 점 2, 적용 장면 을 제공 합 니 다.     1. 응용 프로그램 에서 인 스 턴 스 대상 이 자주 방문 해 야 합 니 다.     2. 응용 프로그램 에서 시작 할 때마다 하나의 인 스 턴 스 만 존재 합 니 다.예 를 들 어 계 정 시스템, 데이터베이스 시스템.3. 자주 사용 하 는 사용 방식   (1) 게으름뱅이 식    장점: 로 딩 지연 (필요 할 때 만 로 딩)
            단점: 스 레 드 가 안전 하지 않 아 다 중 스 레 드 에서 동기 화 되 지 않 는 상황 이 발생 하기 쉽다.
public class Singleton {  
  
    /* 持有私有静态实例,防止被引用,此处赋值为null,目的是实现延迟加载 */  
    private static Singleton instance = null;  
  
    /* 私有构造方法,防止被实例化 */  
    private Singleton() {  
    }  
  
    /* 1:懒汉式,静态工程方法,创建实例 */  
    public static Singleton getInstance() {  
        if (instance == null) {  
            instance = new Singleton();  
        }  
        return instance;  
    }  
}

(2) 굶 주 린 사람 식
                장점: 스 레 드 안전
                단점: 클래스 불 러 올 때 대상 을 직접 만 듭 니 다.
public class Singleton {  
  
    /* 持有私有静态实例,防止被引用 */  
    private static Singleton instance = new Singleton();  
  
    /* 私有构造方法,防止被实例化 */  
    private Singleton() {  
    }  
  
    /* 1:懒汉式,静态工程方法,创建实例 */  
    public static Singleton getInstance() {  
        return instance;  
    }  
}

좋은 웹페이지 즐겨찾기