java
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 19:56
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : Process.java
* explain : 学习 类
**/
package AbstractFactoryPattern.abstractions;
public interface Process {
void execute();
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 19:56
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : ProcessFactory.java
* explain : 学习 接口类
**/
package AbstractFactoryPattern.abstractions;
public interface ProcessFactory {
Process createProcess();
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:23
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : ProcessScheduler.java
* explain : 学习 类
**/
package AbstractFactoryPattern.application;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.abstractions.ProcessFactory;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
import java.util.List;
public class ProcessScheduler {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
private final List<ProcessFactory> factories;
public ProcessScheduler(List<ProcessFactory> factories) {
this.factories = factories;
}
public void runAllSerial() {
log.info("🚀==================== 珠宝全业务流程启动 ====================");
for (ProcessFactory factory : factories) {
try {
Process process = factory.createProcess();
process.execute();
} catch (Exception e) {
log.error("❌执行失败:" + factory.getClass().getSimpleName(), e);
}
}
log.info("🎉==================== 所有业务流程执行完成 ====================");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 19:57
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : ConcurrentFileLogger.java
* explain : 学习 类
**/
package AbstractFactoryPattern.infrastructure;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.ReentrantLock;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.locks.ReentrantLock;
public class ConcurrentFileLogger {
private static final String LOG_ROOT = "Logs";
private static final DateTimeFormatter DATE_FOLDER = DateTimeFormatter.ofPattern("yyyy-MM-dd");
private static final DateTimeFormatter LOG_TIME = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
private static final Map<String, PrintWriter> WRITERS = new ConcurrentHashMap<>();
private static final Map<String, ReentrantLock> LOCKS = new ConcurrentHashMap<>();
private final String clazzName;
public ConcurrentFileLogger(Class<?> clazz) {
this.clazzName = clazz.getSimpleName();
}
public void info(String msg) {
write("info", msg, null);
}
public void debug(String msg) {
write("debug", msg, null);
}
public void error(String msg, Throwable t) {
write("error", msg, t);
}
public void warn(String msg) {
write("warn", msg, null);
}
private void write(String level, String msg, Throwable t) {
String today = LocalDate.now().format(DATE_FOLDER);
String dirPath = LOG_ROOT + File.separator + today;
File dir = new File(dirPath);
if (!dir.exists()) dir.mkdirs();
String fileName = "app-" + level + ".log";
String fullPath = dirPath + File.separator + fileName;
ReentrantLock lock = LOCKS.computeIfAbsent(fullPath, k -> new ReentrantLock());
lock.lock();
try {
PrintWriter writer = WRITERS.computeIfAbsent(fullPath, k -> {
try {
return new PrintWriter(new FileWriter(k, true), true);
} catch (IOException e) {
throw new RuntimeException(e);
}
});
String now = LocalDateTime.now().format(LOG_TIME);
long tid = Thread.currentThread().getId();
String logLine = String.format("[%s] [%s] 🧵%d | %s | %s", now, level, tid, clazzName, msg);
writer.println(logLine);
if (t != null) {
t.printStackTrace(writer);
}
writer.flush();
} finally {
lock.unlock();
}
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 19:57
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : LoggerConfig.java
* explain : 学习 类
**/
package AbstractFactoryPattern.infrastructure;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class LoggerConfig {
public static final String LOG_ROOT = "Logs";
public static final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("yyyy-MM-dd");
public static String getTodayDir() {
return LOG_ROOT + "/" + LocalDate.now().format(DATE_FORMAT);
}
}
java
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:18
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : BusinessSaleFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.BusinessSale;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class BusinessSaleFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】销售业务流程实例");
return new BusinessSaleProcess();
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:17
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : BusinessSaleProcess.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.BusinessSale;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class BusinessSaleProcess implements Process {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public void execute() {
log.info("🤝【销售业务】客户对接、定制洽谈、订单签约、售后维护");
log.debug("✅【业务完成】客户档案、复购回访、售后工单处理");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:06
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : DesignFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Design;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class DesignFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】设计制图流程实例");
return new DesignProcess();
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:06
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : DesignProcess.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Design;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class DesignProcess implements Process {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public void execute() {
log.info("🎨【设计制图】3D建模、款式渲染、工艺图纸绘制");
log.debug("📝【设计确认】客户需求确认 → 生产图纸输出");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:13
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : FinanceFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Finance;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class FinanceFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】财务流程实例");
return new FinanceProcess();
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:13
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : FinanceProcess.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Finance;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class FinanceProcess implements Process {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public void execute() {
log.info("💰【财务核算】成本、营收、进销存、薪资、发票全流程");
log.debug("📊【财务完成】月度报表、税务申报、对账结算完成");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:19
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : HRFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.HR;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class HRFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】人事行政流程实例");
return new HRProcess();
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:19
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : HRProcess.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.HR;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class HRProcess implements Process {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public void execute() {
log.info("👥【人事行政】招聘、入职、考勤、绩效、后勤保障");
log.debug("✅【行政完成】员工档案、制度执行、物资采购完成");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:21
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : ITFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.IT;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class ITFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】IT运维流程实例");
return new ITProcess();
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:20
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : ITProcess.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.IT;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class ITProcess implements Process {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public void execute() {
log.info("💻【IT运维】系统维护、网络安全、数据备份、权限管理");
log.debug("✅【IT完成】服务器监控、故障排查、版本更新完成");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:12
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : LogisticsFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Logistics;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class LogisticsFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】物流流程实例");
return new LogisticsProcess();
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:11
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : LogisticsProcess.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Logistics;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class LogisticsProcess implements Process {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public void execute() {
log.info("🚚【安全物流】保价运输、全程轨迹跟踪、专人押运");
log.debug("✅【物流完成】客户签收、交接单归档、异常理赔登记");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:16
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : MarketingFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Marketing;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class MarketingFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】营销流程实例");
return new MarketingProcess();
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:14
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : MarketingProcess.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Marketing;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class MarketingProcess implements Process {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public void execute() {
log.info("📣【品牌营销】线上投放、门店活动、新品推广、会员运营");
log.debug("📈【营销完成】流量统计、ROI核算、客户沉淀完成");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:05
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : MaterialPurchaseFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.MaterialPurchase;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class MaterialPurchaseFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】原料采购流程实例");
return new MaterialPurchaseProcess();
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:04
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : MaterialPurchaseProcess.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.MaterialPurchase;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class MaterialPurchaseProcess implements Process {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public void execute() {
log.info("📦【原料采购】黄金、钻石、宝石、铂金原材料采购启动");
log.debug("✅【原料核验】纯度光谱检测、重量校验、供应商资质审核");
log.info("✅【原料入库】原材料核验完成,正式入库登记");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:10
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : PackageFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Package;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class PackageFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】包装流程实例");
return new PackageProcess();
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:10
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : PackageProcess.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Package;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class PackageProcess implements Process {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public void execute() {
log.info("🎁【成品包装】礼盒、证书、防伪标签全套封装");
log.debug("✅【包装完成】防拆密封、定制烫印、出库准备");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:08
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : ProductionFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Production;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class ProductionFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】加工生产流程实例");
return new ProductionProcess();
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:07
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : ProductionProcess.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Production;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class ProductionProcess implements Process {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public void execute() {
log.info("🔥【加工生产】开模、铸造、镶嵌、抛光全流程生产");
log.debug("⚙️【精密加工】CNC精雕、手工微镶、半成品流转");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:09
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : QualityInspectFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.QualityInspect;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class QualityInspectFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】质检流程实例");
return new QualityInspectProcess();
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:08
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : QualityInspectProcess.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.QualityInspect;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class QualityInspectProcess implements Process {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public void execute() {
log.info("🔍【成品质检】材质、工艺、尺寸、外观全项检验");
log.debug("📄【质检证书】鉴定证书出具、不良品返工登记");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:23
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : TrainingFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Training;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class TrainingFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】员工培训流程实例");
return new TrainingProcess();
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:22
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : TrainingProcess.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Training;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class TrainingProcess implements Process {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public void execute() {
log.info("📚【员工培训】珠宝知识、工艺技能、销售话术、服务礼仪");
log.debug("🎯【培训考核】理论考试+实操考核、培训档案归档、上岗认证");
log.info("✅【培训完成】员工能力提升,认证上岗");
}
}
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/7 - 20:23
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : TrainingFactory.java
* explain : 学习 类
**/
package AbstractFactoryPattern.domain.Training;
import AbstractFactoryPattern.abstractions.Process;
import AbstractFactoryPattern.infrastructure.ConcurrentFileLogger;
public class TrainingFactory implements AbstractFactoryPattern.abstractions.ProcessFactory {
private final ConcurrentFileLogger log = new ConcurrentFileLogger(getClass());
@Override
public Process createProcess() {
log.debug("🏭【工厂创建】员工培训流程实例");
return new TrainingProcess();
}
}
调用:
java
/**
* encoding: utf-8
* 版权所有 2026 ©涂聚文有限公司 ®
* 许可信息查看:言語成了邀功盡責的功臣,還需要行爲每日來值班嗎
* 描述:Abstract Factory Pattern 抽象工厂模式
* Author : geovindu,Geovin Du 涂聚文.
* IDE : IntelliJ IDEA 2024.3.6 Java 17
* # database : Oracle21c,MySQL 9.0,SQL Server 2019,PostgreSQL 17.1 Neo4j
* # OS : window10
* Datetime : 2026 - 2026/7/5 - 10:57
* User : geovindu
* Product : IntelliJ IDEA
* Project : javadesginpattern
* File : AbstractFactoryBll.java
* explain : 学习 类
**/
package BLL;
import AbstractFactoryPattern.abstractions.ProcessFactory;
import AbstractFactoryPattern.application.ProcessScheduler;
import AbstractFactoryPattern.domain.BusinessSale.BusinessSaleFactory;
import AbstractFactoryPattern.domain.Design.DesignFactory;
import AbstractFactoryPattern.domain.Finance.FinanceFactory;
import AbstractFactoryPattern.domain.HR.HRFactory;
import AbstractFactoryPattern.domain.IT.ITFactory;
import AbstractFactoryPattern.domain.Logistics.LogisticsFactory;
import AbstractFactoryPattern.domain.Marketing.MarketingFactory;
import AbstractFactoryPattern.domain.MaterialPurchase.MaterialPurchaseFactory;
import AbstractFactoryPattern.domain.Package.PackageFactory;
import AbstractFactoryPattern.domain.Production.ProductionFactory;
import AbstractFactoryPattern.domain.QualityInspect.QualityInspectFactory;
import AbstractFactoryPattern.domain.Training.TrainingFactory;
import java.util.List;
import java.util.ArrayList;
public class AbstractFactoryBll {
public void demo(){
List factories = new ArrayList<>();
factories.add(new MaterialPurchaseFactory());
factories.add(new DesignFactory());
factories.add(new ProductionFactory());
factories.add(new QualityInspectFactory());
factories.add(new PackageFactory());
factories.add(new LogisticsFactory());
factories.add(new FinanceFactory());
factories.add(new MarketingFactory());
factories.add(new BusinessSaleFactory());
factories.add(new HRFactory());
factories.add(new ITFactory());
factories.add(new TrainingFactory());
ProcessScheduler scheduler = new ProcessScheduler(factories);
scheduler.runAllSerial();
}
}
输出:
java
[2026-07-07 20:40:05.757] [info] 🧵1 | ProcessScheduler | 🚀==================== 珠宝全业务流程启动 ====================
[2026-07-07 20:40:05.762] [info] 🧵1 | MaterialPurchaseProcess | 📦【原料采购】黄金、钻石、宝石、铂金原材料采购启动
[2026-07-07 20:40:05.765] [info] 🧵1 | MaterialPurchaseProcess | ✅【原料入库】原材料核验完成,正式入库登记
[2026-07-07 20:40:05.768] [info] 🧵1 | DesignProcess | 🎨【设计制图】3D建模、款式渲染、工艺图纸绘制
[2026-07-07 20:40:05.775] [info] 🧵1 | ProductionProcess | 🔥【加工生产】开模、铸造、镶嵌、抛光全流程生产
[2026-07-07 20:40:05.782] [info] 🧵1 | QualityInspectProcess | 🔍【成品质检】材质、工艺、尺寸、外观全项检验
[2026-07-07 20:40:05.791] [info] 🧵1 | PackageProcess | 🎁【成品包装】礼盒、证书、防伪标签全套封装
[2026-07-07 20:40:05.795] [info] 🧵1 | LogisticsProcess | 🚚【安全物流】保价运输、全程轨迹跟踪、专人押运
[2026-07-07 20:40:05.801] [info] 🧵1 | FinanceProcess | 💰【财务核算】成本、营收、进销存、薪资、发票全流程
[2026-07-07 20:40:05.805] [info] 🧵1 | MarketingProcess | 📣【品牌营销】线上投放、门店活动、新品推广、会员运营
[2026-07-07 20:40:05.809] [info] 🧵1 | BusinessSaleProcess | 🤝【销售业务】客户对接、定制洽谈、订单签约、售后维护
[2026-07-07 20:40:05.813] [info] 🧵1 | HRProcess | 👥【人事行政】招聘、入职、考勤、绩效、后勤保障
[2026-07-07 20:40:05.819] [info] 🧵1 | ITProcess | 💻【IT运维】系统维护、网络安全、数据备份、权限管理
[2026-07-07 20:40:05.824] [info] 🧵1 | TrainingProcess | 📚【员工培训】珠宝知识、工艺技能、销售话术、服务礼仪
[2026-07-07 20:40:05.827] [info] 🧵1 | TrainingProcess | ✅【培训完成】员工能力提升,认证上岗
[2026-07-07 20:40:05.828] [info] 🧵1 | ProcessScheduler | 🎉==================== 所有业务流程执行完成 ====================