专业网站建设官网企业网站主页模板

张小明 2025/12/28 19:14:02
专业网站建设官网,企业网站主页模板,要做一个app需要多少资金,网站开发需要做什么工作作者有话要说 本文以奶茶为例#xff0c;深入浅出地讲解工厂设计模式的三种分类#xff0c;帮助读者轻松掌握这一概念。一#xff0c;什么是工厂设计模式定义一个创建对象的接口#xff0c;由子类决定实例化哪个类#xff0c;将对象的创建延迟到子类。例如:如果没有奶茶店…作者有话要说本文以奶茶为例深入浅出地讲解工厂设计模式的三种分类帮助读者轻松掌握这一概念。一什么是工厂设计模式定义一个创建对象的接口由子类决定实例化哪个类将对象的创建延迟到子类。例如:如果没有奶茶店工厂设计模式你想喝珍珠奶茶就需要准备珍珠牛奶等还需要自己配方。如果你又想喝芋泥奶茶你就又需要准备芋泥还需要调整配方。但是如果有了奶茶店工厂设计模式你想喝珍珠奶茶只需要给店员说一声就可以喝到想喝芋泥奶茶也只需要说一声。而且奶茶店还可以拓展更多新品种的奶茶供你选择。二工厂设计模式的特点核心对象创建过程在子类中实现。三什么时候使用工厂设计模式1.对象常见逻辑复杂调用者无需关注细节。如果new一个对象需要写5行以上的代码就可以考虑使用工厂设计模式2.需要支持多种产品类型且可能频繁扩展。存在支付宝支付微信支付等多种支付方式现在发明了银联支付可以直接支付。3.需要统一管控对象的创建过程。创建日志记录在工厂中记录每个对象的创建时间创建者。4.需要创建一组配套的相关的产品。奶茶套餐家具设计等。四工厂设计模式的代码解析工厂设计模式可以分为三种类型接下来就三种类型的代码进行解析1.简单工厂模式一个工厂生产不同的奶茶核心定义一个工厂类通过静态方法根据传入的参数创建不同类型的产品对象。适用场景产品种类较少、变化不频繁的场景。代码第一步定义产品接口// 第一步定义产品接口所有奶茶的共同行为 interface MilkTea { void make(); // 制作奶茶的方法 }第二步实现具体产品类// 珍珠奶茶类 class PearlMilkTea implements MilkTea { Override public void make() { System.out.println(制作珍珠奶茶煮茶底加珍珠调甜度); } } //芋泥奶茶类 class TaroMilkTea implements MilkTea { Override public void make() { System.out.println(制作芋泥奶茶煮茶底加芋泥调甜度); } }第三步定义简单工厂类核心统一创建产品class MilkTeaFactory { // 静态工厂方法根据参数返回不同的奶茶对象 public static MilkTea createMilkTea(String type) { if (pearl.equals(type)) { return new PearlMilkTea(); } else if (taro.equals(type)) { return new TaroMilkTea(); } else { throw new IllegalArgumentException(本店不卖你可以去蜜雪冰城看看); } } }第四步测试一下// 测试调用者只需要传参数不用关心创建过程 public class SimpleFactoryTest { public static void main(String[] args) { // 要珍珠奶茶 MilkTea pearlTea MilkTeaFactory.createMilkTea(pearl); pearlTea.make(); // 要芋泥奶茶 MilkTea taroTea MilkTeaFactory.createMilkTea(taro); taroTea.make(); } }2.工厂模式不同的工厂生产不同的奶茶核心将工厂抽象成接口 / 抽象类每个具体产品对应一个具体工厂类由具体工厂创建对应的产品。适用场景产品种类较多、需要频繁扩展的场景。代码第一步定义产品接口。// 第一步定义产品接口和简单工厂一致 interface MilkTea { void make(); }第二步实现具体产品类。// 第二步实现具体产品类和简单工厂一致 class PearlMilkTea implements MilkTea { Override public void make() { System.out.println(制作珍珠奶茶); } } class TaroMilkTea implements MilkTea { Override public void make() { System.out.println(制作芋泥奶茶); } }第三步定义工厂接口。// 第三步定义工厂接口抽象工厂 interface MilkTeaFactory { MilkTea createMilkTea(); // 工厂方法创建产品 }第四步实现具体工厂类每个产品对应一个工厂。// 第四步实现具体工厂类每个产品对应一个工厂 class PearlMilkTeaFactory implements MilkTeaFactory { Override public MilkTea createMilkTea() { return new PearlMilkTea(); } } class TaroMilkTeaFactory implements MilkTeaFactory { Override public MilkTea createMilkTea() { return new TaroMilkTea(); } }第五步测试一下调用者通过具体工厂获取产品。// 测试调用者通过具体工厂获取产品 public class FactoryMethodTest { public static void main(String[] args) { // 要珍珠奶茶创建珍珠奶茶工厂再生产产品 MilkTeaFactory pearlFactory new PearlMilkTeaFactory(); MilkTea pearlTea pearlFactory.createMilkTea(); pearlTea.make(); // 要芋泥奶茶创建芋泥奶茶工厂再生产产品 MilkTeaFactory taroFactory new TaroMilkTeaFactory(); MilkTea taroTea taroFactory.createMilkTea(); taroTea.make(); } }3.抽象工厂模式一个工厂生产一组奶茶族奶茶小料核心工厂不仅能创建一种产品还能创建一组相关联、配套的产品比如奶茶工厂不仅造奶茶还能造配套的小料汽车工厂不仅造汽车还能造汽车轮胎、座椅。适用场景需要创建一组配套产品的场景比如系统的界面组件Windows 风格的按钮 文本框、Mac 风格的按钮 文本框。代码第一步定义一组产品接口奶茶// 第一步定义第一组产品接口奶茶 interface MilkTea { void make(); } // 实现具体奶茶产品 class PearlMilkTea implements MilkTea { Override public void make() { System.out.println(制作珍珠奶茶); } } class TaroMilkTea implements MilkTea { Override public void make() { System.out.println(制作芋泥奶茶); } }第二步定义第二组产品接口小料// 第二步定义第二组产品接口小料 interface Topping { void add(); } // 实现具体小料产品 class PearlTopping implements Topping { Override public void add() { System.out.println(添加珍珠小料); } } class TaroTopping implements Topping { Override public void add() { System.out.println(添加芋泥小料); } }第三步定义抽象工厂接口能创建奶茶小料一组产品// 第三步定义抽象工厂接口能创建奶茶小料一组产品 interface MilkTeaSystemFactory { MilkTea createMilkTea(); // 创建奶茶 Topping createTopping(); // 创建配套小料 }第四步实现具体工厂珍珠奶茶珍珠小料工厂// 第四步实现具体工厂珍珠奶茶珍珠小料工厂 class PearlMilkTeaSystemFactory implements MilkTeaSystemFactory { Override public MilkTea createMilkTea() { return new PearlMilkTea(); } Override public Topping createTopping() { return new PearlTopping(); } } // 芋泥奶茶芋泥小料工厂 class TaroMilkTeaSystemFactory implements MilkTeaSystemFactory { Override public MilkTea createMilkTea() { return new TaroMilkTea(); } Override public Topping createTopping() { return new TaroTopping(); } }第五步测试一下创建一组配套产品// 测试创建一组配套产品 public class AbstractFactoryTest { public static void main(String[] args) { // 珍珠奶茶套餐珍珠奶茶珍珠小料 MilkTeaSystemFactory pearlFactory new PearlMilkTeaSystemFactory(); MilkTea pearlTea pearlFactory.createMilkTea(); Topping pearlTopping pearlFactory.createTopping(); pearlTea.make(); pearlTopping.add(); // 芋泥奶茶套餐芋泥奶茶芋泥小料 MilkTeaSystemFactory taroFactory new TaroMilkTeaSystemFactory(); MilkTea taroTea taroFactory.createMilkTea(); Topping taroTopping taroFactory.createTopping(); taroTea.make(); taroTopping.add(); } }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

搭建一个企业网站需要多少钱网站出现建设中

PaddlePaddle镜像与Kubernetes集群协同部署实战 在当前AI工业化落地加速的背景下,企业对深度学习系统的稳定性、可扩展性和运维效率提出了前所未有的要求。我们不再满足于“模型能跑”,而是追求“服务永续”、“资源高效”、“发布敏捷”。特别是在中文…

张小明 2025/12/28 9:24:34 网站建设

建站公司排名前十名网站运行费用预算

第一章:Open-AutoGLM线索过滤的核心机制Open-AutoGLM 是一种基于生成语言模型的自动化线索识别与过滤系统,其核心在于通过语义理解、上下文推理和模式匹配实现高精度线索筛选。该机制能够在海量非结构化文本中快速定位潜在有效线索,并剔除噪声…

张小明 2025/12/27 9:22:11 网站建设

网站开发 定制 合同交换机做网站

TTSOP跨境互联 一站式提供TikTok账号 静态住宅IP,专为带货直播打造爆量通道。在数字经济的浪潮中,TikTok已从一个纯粹的短视频娱乐平台,迅速演变为全球电商领域不可忽视的“新物种”。凭借其独特的算法推荐、沉浸式内容体验和庞大的用户基础…

张小明 2025/12/27 9:21:39 网站建设

找谁做网站比较好网站策划报价模板

Mac鼠标革命:让你的普通鼠标在苹果电脑上重获新生 【免费下载链接】mac-mouse-fix Mac Mouse Fix - A simple way to make your mouse better. 项目地址: https://gitcode.com/gh_mirrors/ma/mac-mouse-fix 你是否曾经为第三方鼠标在Mac上的糟糕体验感到沮丧…

张小明 2025/12/27 9:20:32 网站建设

网站建设学生选课系统设计做药公司的网站前置审批

智慧农业综合实训平台以真实农业生产场景为蓝本,将物联网、机器视觉、机器语音语言、AIGC大模型、边缘计算、PLC 控制、虚拟仿真等前沿技术深度融合,构建了智慧农业气象系统、智慧农业大棚系统、智慧农业畜牧系统、水培智能营养液管理系统、智能灌溉与施…

张小明 2025/12/27 9:20:00 网站建设

婚纱网站设计首页承德 网站建设 网络推广 网页设计

3分钟掌握uv-ui:跨平台Vue组件库终极入门指南 【免费下载链接】uv-ui uv-ui 破釜沉舟之兼容vue32、app、h5、小程序等多端基于uni-app和uView2.x的生态框架,支持单独导入,开箱即用,利剑出击。 项目地址: https://gitcode.com/gh…

张小明 2025/12/27 9:19:27 网站建设