工厂模式-开源代码实例

 

1,开源代码实例

LoggerFactory

1-1,简单工厂模式

 

1-2,抽象工厂模式

 

 

 

 

 

 

 

2,开源代码实践

 

 

 

 

 

 

 

 

 

 

 

2-1,流程梳理

比如有3个线程同时打印日志;

有一个线程需要去初始化日志记录器;

其他线程则不能由于日志记录器还没有初始化就不工作,所以这些线程会返回一个替代日志记录器(同一个对象),替代日志记录器使用NOPLogger打印,结果就是什么都不打印。

等到初始化的那个线程完成初始化了,这个初始化的线程会让替代日志记录器使用新的初始化的LoggerContext产生的logger去打印之前淤积的那些日志。

这样以后所有的日志都统一使用LoggerContext产生的logger去打印。

 

总结

工厂模式一般分为:简单工厂模式、工厂方法、抽象工厂模式;

也有人认为工厂方法是抽象工厂模式的特例,即当抽象工厂模式的工厂只生产一种产品时转变为工厂方法。

像上文的日志工厂就是工厂方法,如下图:

 当工厂生产两种或以上的产品时则为抽象工厂模式。

posted @ 2021-12-27 10:14  seeAll  阅读(79)  评论(0编辑  收藏  举报