공장 패턴 개념

팩토리 패턴이 있는 이유

        일반적으로 객체를 생성할 때 생성자를 호출하는데 생성자의 이름은 클래스 이름과 같아야 하므로 매개변수의 종류와 개수가 다른 인스턴스를 생성하려면 오버로드가 필요하지만, 매개 변수 유형과 번호는 같지만 의미가 다른 인스턴스를 만들고 싶지만 그러한 인스턴스는 오버로드 요구 사항을 충족하지 않으므로 일반 메서드를 정의하여 객체를 생성할 수 있으며 일반 메서드에는 이름 제한이 없습니다. 이 일반 메소드는 오브젝트를 생성하기 위해 오브젝트에 의존할 수 없으므로 이 일반 메소드는 정적 메소드여야 합니다.이 모드의 클래스를 팩토리 클래스라고 하고 오브젝트를 생성하는 데 사용되는 정적 메소드를 팩토리 메소드라고 합니다.

        실행자는 팩토리 클래스이고, newFixedThreadPool(), newCachedThreadPool(), newSingleThreadExecutor(), newScheduledThreadPool()은 팩토리 메소드입니다.

다음은 팩토리 클래스와 팩토리 메소드를 통해 쓰레드 풀을 인스턴스화하는 프로그램이다.

ExecutorService service1= Executors.newFixedThreadPool(4);   //创造一个固定线程数量的线程池
ExecutorService service2=Executors.newCachedThreadPool();   //创建一个线程动态变化的线程池
ExecutorService service3=Executors.newSingleThreadExecutor();   //创建单个线程(比原生的创建线程api更简单一点)
//类似于定时器的效果,添加一些任务,任务都在后续的莫个时刻再执行
//被执行的时候不是只有一个扫描线程来执行任务,可能是由多个线程共同执行所有的任务
ExecutorService service4=Executors.newScheduledThreadPool(4);

Supongo que te gusta

Origin blog.csdn.net/q322359/article/details/132021880
Recomendado
Clasificación