工厂模式概念

为啥要有工厂模式

        一般创建对象的时候我们调用的都是构造方法,但是构造方法名只能和类名相同,所以我们想要创建出不同参数类型和个数的实例就需要进行重载,但是也会有想要创建参数类型和个数相同但是意义不同的实例,但这种实例不符合进行重载的要求,所以我们就可以定义普通的方法来创建对象,普通的方法就没有名称的限制,而由于这种普通的方法要创建对象就不能依赖于对象,所以这种普通的方法应该都是静态方法,在这种模式中的类就叫工厂类,用来创建对象的静态方法叫做工厂方法

示例

        Executors是工厂类,newFixedThreadPool(),newCachedThreadPool(),newSingleThreadExecutor(),newScheduledThreadPool()是工厂方法

以下是通过工厂类和工厂方法来实例化线程池的程序

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

猜你喜欢

转载自blog.csdn.net/q322359/article/details/132021880
今日推荐