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

自己做的网站怎么放上网计算机培训班有用吗

自己做的网站怎么放上网,计算机培训班有用吗,wordpress q&a插件,wordpress宝典 pdf精心整理了最新的面试资料和简历模板,有需要的可以自行获取 点击前往百度网盘获取 点击前往夸克网盘获取 一、模式定义与分类 工厂模式(Factory Pattern)是创建型设计模式的核心成员之一,主要解决对象创建过程中的灵活性问题。根…

精心整理了最新的面试资料和简历模板,有需要的可以自行获取

点击前往百度网盘获取
点击前往夸克网盘获取


一、模式定义与分类

工厂模式(Factory Pattern)是创建型设计模式的核心成员之一,主要解决对象创建过程中的灵活性问题。根据抽象程度不同分为三种形态:

  1. 简单工厂(静态工厂)
  2. 工厂方法模式
  3. 抽象工厂模式

二、模式适用场景

  • 需要隔离对象创建逻辑时
  • 系统需要动态扩展产品族时
  • 需要统一管理对象创建过程
  • 对象创建依赖复杂初始化参数

三、模式实现演进

3.1 简单工厂模式

// 产品接口
interface Vehicle {void deliver();
}class Truck implements Vehicle {@Overridepublic void deliver() {System.out.println("陆路运输");}
}class Ship implements Vehicle {@Overridepublic void deliver() {System.out.println("海运运输");}
}// 简单工厂
class VehicleFactory {public static Vehicle createVehicle(String type) {return switch (type.toLowerCase()) {case "truck" -> new Truck();case "ship" -> new Ship();default -> throw new IllegalArgumentException("未知运输类型");};}
}// 使用示例
public class Client {public static void main(String[] args) {Vehicle transport = VehicleFactory.createVehicle("truck");transport.deliver();}
}

特点

  • 静态创建方法
  • 违反开闭原则(新增类型需修改工厂)
  • 适合产品类型较少的情况

3.2 工厂方法模式

// 抽象工厂
abstract class Logistics {public void planDelivery() {Vehicle vehicle = createVehicle();vehicle.deliver();}// 工厂方法abstract Vehicle createVehicle();
}// 具体工厂
class RoadLogistics extends Logistics {@OverrideVehicle createVehicle() {return new Truck();}
}class SeaLogistics extends Logistics {@OverrideVehicle createVehicle() {return new Ship();}
}// 客户端调用
public class Client {public static void main(String[] args) {Logistics logistics = new RoadLogistics();logistics.planDelivery();}
}

优势

  • 符合开闭原则
  • 创建逻辑延迟到子类
  • 支持多态创建

3.3 抽象工厂模式

// 产品族接口
interface GUIFactory {Button createButton();Checkbox createCheckbox();
}// 具体工厂
class WindowsFactory implements GUIFactory {public Button createButton() {return new WindowsButton();}public Checkbox createCheckbox() {return new WindowsCheckbox();}
}class MacOSFactory implements GUIFactory {public Button createButton() {return new MacOSButton();}public Checkbox createCheckbox() {return new MacOSCheckbox();}
}// 客户端代码
public class Application {private GUIFactory factory;public Application(GUIFactory factory) {this.factory = factory;}public void renderUI() {Button button = factory.createButton();button.paint();}
}

应用场景

  • 需要创建产品族
  • 保证产品兼容性
  • 跨平台UI开发
  • 数据库访问抽象

四、模式对比分析

维度简单工厂工厂方法抽象工厂
创建范围单一产品单一产品产品族
扩展性修改工厂类新增子类新增工厂类
复杂度
适用场景固定产品类型单一产品扩展关联产品组合

五、最佳实践建议

  1. 避免过度设计:简单场景优先考虑简单工厂
  2. 结合依赖注入:Spring等框架中常用工厂模式实现IoC
  3. 使用枚举优化:增强简单工厂的可维护性
  4. 注意层次划分:抽象工厂推荐使用接口而非抽象类

六、实际应用案例

  • JDK中的Calendar.getInstance()
  • Spring框架的BeanFactory
  • Logback日志框架的AppenderFactory
  • JUnit测试用例工厂

通过本文可以全面了解工厂模式的不同形态及其适用场景。实际开发中应根据业务复杂度选择合适的工厂实现,在灵活性和简洁性之间找到最佳平衡点。工厂模式的价值不仅在于对象创建本身,更在于它为实现依赖倒置原则提供了有效途径。

http://www.dtcms.com/wzjs/300124.html

相关文章:

  • 南通高端网站建设机构seo文案范例
  • 做网站的公司没有技术html网页制作模板代码
  • 最火的网站开发语言优化营商环境心得体会个人
  • 扬州城乡建设局网站站长之家是什么
  • 哈尔滨巨耀网站建设seo需要什么技术
  • 厅门户网站建设百度一下首页版
  • 服务器 网站建设seo优化公司
  • 学会网站建设百度指数怎么看排名
  • 做门户型网站国内10大搜索引擎
  • 东莞网站优化方法有哪些2023年5月份病毒感染情况
  • 英文网站推广工作百度推广售后服务电话
  • 如何学习网站制作深圳龙岗区布吉街道
  • 建设网站需要的ftp资源个人博客网站怎么做
  • 主流做网站程序代码运营推广渠道有哪些
  • 哈尔滨市建设局网站如何做品牌运营与推广
  • 自己建一个网站需要多少钱百度seo如何优化
  • wp做图网站注册城乡规划师
  • 无限流量网站建设网络营销做的好的企业
  • 论坛模板网站建设贵州百度seo整站优化
  • 律师事务所网站模板网络媒体
  • 服务器系统搭建网站源码上海网站seo
  • 营销网站建设规划百度关键词排名点击器
  • 哪家的装修公司比较好星巴克seo网络推广
  • 创建门户网站郑州短视频代运营
  • 页面设计时最好用多少种颜色长沙seo推广外包
  • ftp网站建立百度指数查询
  • 琼中网站建设网站交换链接友情链接的作用
  • 做网站开发用哪门语言宁波网站推广制作
  • szfob外贸论坛网站百度上怎么做推广
  • 建网站必需服务器吗邳州网站开发