当然了,知道工厂方式大家都是很熟悉的方法了。所以我们直接上样例吧。

题目描述:某系统日志记录器要求支持多种日志记录方式,如文件日志记录(FileLog)、数据库日志记录(DatabaseLog)等,且用户可以根据要求动态选择日志记录方式。参考--传送门

实现截图:

UML图:

实际上提取出每一个java文件。保存在同一个包下。最后运行test程序即可。其中Logger接口充当抽象产品,其子类FileLogger和DatabaseLogger充当具体产品,LoggerFactory接口充当抽象工厂,其子类FileLoggerFactory和DatabaseLoggerFactory充当具体工厂。其中可以根据需要自行进行拆分。我们这里的话合并到一个java文件里面。

Logger.java:

LoggerFactory.java:

FileLogger.java:

FileLoggerFactory.java:

DatabaseLogger.java:

DatabaseLoggerFactory.java:

shejian1_Factorymode.java:

package logmatch_Factory_1;
//日志记录器接口:抽象产品
interface Logger {public void writeLog();
}//数据库日志记录器:具体产品
class DatabaseLogger implements Logger {public void writeLog() {System.out.println("已选择数据库日志记录。");}
}//文件日志记录器:具体产品
class FileLogger implements Logger {public void writeLog() {System.out.println("已选择文件日志记录。");}
}//日志记录器工厂接口:抽象工厂
interface LoggerFactory {public Logger createLogger();
}//数据库日志记录器工厂类:具体工厂
class DatabaseLoggerFactory implements LoggerFactory {public Logger createLogger() {//连接数据库,代码省略//创建数据库日志记录器对象Logger logger = new DatabaseLogger();//初始化数据库日志记录器,代码省略return logger;}
}//文件日志记录器工厂类:具体工厂
class FileLoggerFactory implements LoggerFactory {public Logger createLogger() {//创建文件日志记录器对象Logger logger = new FileLogger();//创建文件,代码省略return logger;}
}
public class shijian1_Factorymode {public static void main(String args[]) {LoggerFactory factory;Logger logger1;factory = new FileLoggerFactory(); //可引入配置文件实现logger1 = factory.createLogger();logger1.writeLog();Logger logger2;factory = new DatabaseLoggerFactory(); //可引入配置文件实现logger2 = factory.createLogger();logger2.writeLog();}
}

日志记录器(设计模式--工厂方法模式)相关推荐

  1. 4. 星际争霸之php设计模式--工厂方法模式

    题记 ============================================================================== 本php设计模式专辑来源于博客(jy ...

  2. java 工厂方法_java设计模式-工厂方法模式

    1.工厂方法(FactoryMethod)模式的定义 定义一个创建产品对象的工厂接口,将产品对象的实际创建工作推迟到具体子工厂类当中.这满足创建型模式中所要求的"创建与使用相分离" ...

  3. 设计模式 | 工厂方法模式及典型应用

    工厂方法模式 工厂方法模式(Factory Method Pattern):定义一个用于创建对象的接口,让子类决定将哪一个类实例化.工厂方法模式让一个类的实例化延迟到其子类. 工厂方法模式又简称为工厂 ...

  4. python工厂模式 django_python设计模式-工厂方法模式

    题目:假设你有一个 pizza 店,功能包括下订单.做 pizza,你的代码会如何写呢? def order_pizza(): pizza = Pizza() pizza.prepare() pizz ...

  5. 工厂方法模式_1天1个设计模式——工厂方法模式

    意图 工厂方法模式是一种创建型设计模式, 其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型. 问题 假设你正在开发一款物流管理应用.1.0版本只能支持处理卡车运输,因此大部分的代码都位 ...

  6. [设计模式] ------ 工厂方法模式

    工厂方法模式 手机厂造手机,肥皂厂造肥皂,药品厂造药品. 假设有一大类对象A1,A2,A3,A4-他们都有一个共同的父类A A1可以想成是手机,A2可以想成肥皂- (下面例子的A1Factory就是手 ...

  7. JAVA设计模式 - 工厂方法模式

    工厂方法模式(Factory Pattern) 是一种创建型设计模式 , 它是Java中最常用的设计模式之一 . 1 . 工厂方法模式的定义 定义一个创建对象的接口 , 让子类决定实例化哪一个类 . ...

  8. Java设计模式—工厂方法模式抽象工厂模式

    工厂方法模式与抽象工厂模式都是设计模式中重要而且常见的模式.       工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类.工厂方法使一个类的实例化延迟到其子类. 通用类图如下: 在 ...

  9. C#设计模式--工厂方法模式

    0.C#设计模式-简单工厂模式 设计模式: 工厂方法模式(Factory Method Pattern) 介绍:简单工厂模式是要在工厂类中通过数据来做个决策,在工厂类中的多个类中实例化出来其中一个要用 ...

最新文章

  1. scss安装_安装了这9个免费PS插件后,终于能正常时间下班了……
  2. 【错误记录】未安装该应用 ( 在 Android 12 之后 组件设置 android:exported=“false“ 属性 )
  3. 【Kafka】Kafka-配置参数详解-参数调优
  4. GDCM:gdcm::Dicts的测试程序
  5. 解锁环境变量在云原生应用中的各种姿势
  6. Google 开源的 Android 排版库:FlexboxLayout
  7. laravel 控制器中使用中间件_在 Laravel 中使用 Slack 进行异常通知
  8. python基础入门笔记_Python基础入门笔记:函数
  9. XJTUOJ13 (数论+FFT)
  10. C#读取网络流,读取网络上的js文件
  11. Manjaro 常用软件安装
  12. 灵格斯怎么屏幕取词_灵格斯屏幕取词翻译插件
  13. python嵩天ppt_嵩天python课程笔记1
  14. 在线编译器汇总|2020年最新版
  15. 北斗星通GPS调试记录
  16. 【论文晨读】一种移动机器人全局最优路径规划算法 孟 偲2008
  17. 微型计算机处理数据的本质,四川信息职业技术学院2019考纲复习
  18. python unpacking_Python在unpacking上的一个小陷阱
  19. java经纬度工具类
  20. linux中怎样结束进程,linux怎么样终止进程

热门文章

  1. OKR:制定团队目标的流程
  2. 【热门主题:魔法少女奈叶动漫主题】
  3. 连锁门店设备微信云集中监控及告警方案
  4. 【Java之多线程(二)】(***重要***)Java多线程中常见方法的区别,如object.wait()和Thread.sleep()的区别等
  5. 改善C#程序的50种方法(转)
  6. c#对接每人计平台获取数据
  7. Win10系统电脑开机黑屏一直转圈无法进入桌面怎么办?
  8. Opencv RotatedRect类中的points、angle、width、height等详解
  9. 方言听力测试软件,汉语普通话噪声中听力测试材料在不同方言正常人中的应用研究...
  10. 2017医疗大数据与人工智能报告