当前位置: 首页 > news >正文

如何创建广告网站公司装修风格

如何创建广告网站,公司装修风格,推广策略及推广方式,无锡 学校网站建设3W 学习法总结创建型模式(附 Java 代码实战及开源框架应用) 创建型模式主要关注 对象的创建,旨在提高代码的可复用性、可扩展性和灵活性。本文采用 3W 学习法(What、Why、How),深入分析 五大创建型模式&am…

3W 学习法总结创建型模式(附 Java 代码实战及开源框架应用)

创建型模式主要关注 对象的创建,旨在提高代码的可复用性、可扩展性和灵活性。本文采用 3W 学习法(What、Why、How),深入分析 五大创建型模式:单例、工厂方法、抽象工厂、建造者和原型模式,并结合 Java 代码实战开源框架中的应用,帮助你高效掌握创建型模式。


1. 单例模式(Singleton)

✅ What:单例模式是什么?

单例模式 确保一个类只有一个实例,并提供一个全局访问点。它常用于 共享资源管理、线程池、日志管理 等场景。

🤔 Why:为什么要使用单例模式?

  • 节省资源:避免创建多个实例,减少内存占用。
  • 全局访问:提供唯一实例,适用于缓存、配置管理等。
  • 控制实例化:防止重复创建对象,提升系统性能。

🚀 How:如何实现单例模式?(Java 代码实战)

双重检查锁实现线程安全单例

public class Singleton {private static volatile Singleton instance;private Singleton() {} // 私有构造函数public static Singleton getInstance() {if (instance == null) { synchronized (Singleton.class) {if (instance == null) { instance = new Singleton();}}}return instance;}
}

📌 在开源框架中的应用:

  • Spring 的 Bean 作用域:默认情况下,Spring Bean 是单例模式 (@Scope("singleton"))。
  • Runtime.getRuntime():Java 的 Runtime 类是单例模式的典型应用。

2. 工厂方法模式(Factory Method)

✅ What:工厂方法模式是什么?

工厂方法模式 通过 定义一个抽象工厂接口,让子类决定实例化哪个类,从而实现 面向接口编程

🤔 Why:为什么要使用工厂方法?

  • 解耦:调用者无需关心具体实现,依赖抽象工厂。
  • 符合开闭原则:新增产品无需修改原工厂,只需创建新的子类工厂。

🚀 How:如何实现工厂方法?(Java 代码实战)

// 抽象产品
interface Product {void use();
}// 具体产品A
class ProductA implements Product {public void use() { System.out.println("使用产品A"); }
}// 抽象工厂
interface Factory {Product createProduct();
}// 具体工厂A
class FactoryA implements Factory {public Product createProduct() { return new ProductA(); }
}// 客户端调用
public class FactoryMethodDemo {public static void main(String[] args) {Factory factory = new FactoryA();Product product = factory.createProduct();product.use(); // 输出: 使用产品A}
}

📌 在开源框架中的应用:

  • Spring BeanFactory:Spring 通过 BeanFactory 采用工厂方法模式管理 Bean 的创建。
  • JDBC 驱动加载DriverManager.getConnection() 通过工厂方法获取不同数据库驱动。

3. 抽象工厂模式(Abstract Factory)

✅ What:抽象工厂模式是什么?

抽象工厂模式 提供一个 接口,用于创建 一系列相关或相互依赖的对象,而无需指定其具体类。

🤔 Why:为什么要使用抽象工厂?

  • 产品族管理:能创建 一整套相关产品,适用于 GUI 组件、数据库连接等场景。
  • 保证产品兼容性:不同产品族之间不会互相影响。

🚀 How:如何实现抽象工厂模式?(Java 代码实战)

// 抽象产品A
interface Button { void click(); }// 具体产品A1
class MacButton implements Button {public void click() { System.out.println("Mac 按钮点击"); }
}// 抽象工厂
interface GUIFactory {Button createButton();
}// 具体工厂:Mac 工厂
class MacFactory implements GUIFactory {public Button createButton() { return new MacButton(); }
}// 客户端调用
public class AbstractFactoryDemo {public static void main(String[] args) {GUIFactory factory = new MacFactory();Button button = factory.createButton();button.click(); // 输出: Mac 按钮点击}
}

📌 在开源框架中的应用:

  • Spring ApplicationContext:Spring 使用 ApplicationContext 作为抽象工厂,创建和管理 Bean。
  • 数据库连接池:如 javax.sql.DataSource 负责创建数据库连接对象。

4. 建造者模式(Builder)

✅ What:建造者模式是什么?

建造者模式 通过 一步步构建复杂对象,并支持 链式调用,适用于 对象参数较多的场景

🤔 Why:为什么要使用建造者模式?

  • 解决构造函数参数过多的问题,避免冗长的构造函数。
  • 链式调用 使代码更简洁,提高可读性。

🚀 How:如何实现建造者模式?(Java 代码实战)

class Computer {private String CPU;private int RAM;public static class Builder {private String CPU;private int RAM;public Builder setCPU(String CPU) { this.CPU = CPU; return this; }public Builder setRAM(int RAM) { this.RAM = RAM; return this; }public Computer build() { return new Computer(this); }}private Computer(Builder builder) {this.CPU = builder.CPU;this.RAM = builder.RAM;}
}// 客户端调用
public class BuilderDemo {public static void main(String[] args) {Computer computer = new Computer.Builder().setCPU("Intel i9").setRAM(32).build();System.out.println("电脑构造完成");}
}

📌 在开源框架中的应用:

  • Lombok @Builder 注解:简化 Java 对象构造。
  • StringBuilderStringBuilder.append() 采用建造者模式。

5. 原型模式(Prototype)

✅ What:原型模式是什么?

原型模式 通过 克隆现有对象 来创建新对象,而不是直接实例化。

🤔 Why:为什么要使用原型模式?

  • 提高性能:避免重复创建对象,适用于对象初始化成本高的场景。
  • 避免复杂构造:直接复制已有对象,减少对象创建的复杂度。

🚀 How:如何实现原型模式?(Java 代码实战)

class Prototype implements Cloneable {String name;public Prototype(String name) { this.name = name; }@Overrideprotected Object clone() throws CloneNotSupportedException {return super.clone();}
}// 客户端调用
public class PrototypeDemo {public static void main(String[] args) throws CloneNotSupportedException {Prototype p1 = new Prototype("原型对象");Prototype p2 = (Prototype) p1.clone();System.out.println("克隆成功: " + p2.name);}
}

📌 在开源框架中的应用:

  • Spring Bean 作用域 @Scope("prototype"):每次获取 Bean 时都会克隆新实例。
  • java.lang.Object#clone():标准 Java 克隆机制。

总结

设计模式主要作用适用场景
单例模式保证唯一实例日志管理、数据库连接池
工厂方法解耦对象创建JDBC、Spring BeanFactory
抽象工厂创建产品族GUI 组件、数据库连接
建造者复杂对象构建Lombok @Builder、StringBuilder
原型模式克隆对象Spring @Scope("prototype")

这五种创建型模式各有特点,结合实际项目,能让代码更加灵活、可维护! 🚀

http://www.dtcms.com/a/401751.html

相关文章:

  • 基层组织建设部 网站广州企业黄页大全
  • 有哪些网站是可以做宣传的做视频解析网站犯法
  • 江门外贸网站推广方案大连营销推广
  • 网站建设资金请示帮人做网站一定要先收费
  • 网站备案查询app下载四川网站建设案例单招网
  • 网站开发技术 包括那个网站做毕业设计
  • 网站怎么做可以再上面输入文字php网站建设与管理
  • 做网站的硬件成本公司要做个网站吗
  • 有网站有安全狗进不去了怎么判断一个网站是否使用帝国做的
  • 高邮城乡建设网站kfk wordpress
  • 柳州做网站人员目前专业做水果的网站有哪些
  • 网站手机版怎么弄台州网站排名优化
  • 制作一个景点介绍的网站html澧县住房和城乡建设局网站
  • 东莞寮步网站建设网络公司杭州萧山网站建设
  • 外贸访问国外网站php网站的开发环境
  • 微网站免费模板公众号微信
  • 资源软件下载网站免费wordpress 加轮播图
  • 信主网站博客营销案例
  • 湖北省建设厅招骋网站莱州市网站
  • 绍兴网站建设冯炳良wordpress 软件公司主题
  • 钓鱼网站的危害wordpress 申请表单
  • 深圳网站开发外包公司网站全面推广方案
  • 建站公司 网站必应搜索引擎地址
  • 酒店门户网站建设背景可以做分销的网站
  • 蝙蝠做等级的网站淘宝网站建设策划案
  • 宝宝投票网站怎么做政网站首页怎么做试
  • 网站开发目录有哪些网站建设的方法
  • 微网站入口删除wordpress评论
  • dedecms的网站如何添加个引导页小程序制作预览
  • 校园网站建设的目的wordpress需要的环境