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

报名系统网站开发长春网站优化方式

报名系统网站开发,长春网站优化方式,壹互联是网站公司吗,如何更改网站关键词在软件设计中,工厂模式和建造者模式是两种常见的设计模式,它们都是用于创建对象,但是各自有不同的应用场景和目的。本文将通过餐馆点餐的例子,深入探讨这两种模式的区别。 工厂模式 工厂模式的核心思想是通过一个抽象工厂类来创…

在软件设计中,工厂模式和建造者模式是两种常见的设计模式,它们都是用于创建对象,但是各自有不同的应用场景和目的。本文将通过餐馆点餐的例子,深入探讨这两种模式的区别。

工厂模式

工厂模式的核心思想是通过一个抽象工厂类来创建对象,而不直接使用构造函数。它主要用于当我们希望将对象的创建过程与使用过程分离时,并且可以支持多种类型的对象创建。

示例:餐馆的工厂模式

假设顾客走进一家餐馆,想要点餐。餐馆提供多种食物,比如披萨、汉堡和沙拉。我们可以使用工厂模式来创建这些食物。

// 抽象产品
interface Food {void prepare();
}// 具体产品
class Pizza implements Food {@Overridepublic void prepare() {System.out.println("准备披萨...");}
}class Burger implements Food {@Overridepublic void prepare() {System.out.println("准备汉堡...");}
}class Salad implements Food {@Overridepublic void prepare() {System.out.println("准备沙拉...");}
}// 抽象工厂
abstract class FoodFactory {public abstract Food createFood();
}// 具体工厂
class PizzaFactory extends FoodFactory {@Overridepublic Food createFood() {return new Pizza();}
}class BurgerFactory extends FoodFactory {@Overridepublic Food createFood() {return new Burger();}
}class SaladFactory extends FoodFactory {@Overridepublic Food createFood() {return new Salad();}
}// 使用示例
public class Restaurant {public static void main(String[] args) {FoodFactory factory = new PizzaFactory();Food food = factory.createFood();food.prepare();}
}

在这个例子中,FoodFactory是一个抽象工厂,负责创建不同类型的食物对象。具体工厂如PizzaFactoryBurgerFactorySaladFactory实现了创建具体食物的逻辑。顾客只需要指定工厂类型,工厂就会返回对应的对象。

建造者模式

建造者模式用于构建一个复杂对象,尤其是当对象的构建过程涉及多个步骤或多个可选参数时。它通过提供一个灵活的构建接口,让用户能够逐步构造复杂对象。

示例:披萨的建造者模式

在我们的餐馆中,顾客可以根据个人喜好来定制披萨的配料,比如奶酪、西红柿和起司。我们可以使用建造者模式来实现这一点。

class Pizza {private String cheese;private String tomato;private String extra;public static class Builder {private String cheese;private String tomato;private String extra;public Builder setCheese(String cheese) {this.cheese = cheese;return this;}public Builder setTomato(String tomato) {this.tomato = tomato;return this;}public Builder setExtra(String extra) {this.extra = extra;return this;}public Pizza build() {// 校验至少选择一种配料if (cheese == null && tomato == null && extra == null) {throw new IllegalArgumentException("至少选择一种配料!");}return new Pizza(this);}}private Pizza(Builder builder) {this.cheese = builder.cheese;this.tomato = builder.tomato;this.extra = builder.extra;}public void serve() {System.out.println("服务披萨: " + cheese + ", " + tomato + ", " + extra);}
}// 使用示例
public class Customer {public static void main(String[] args) {try {Pizza pizza = new Pizza.Builder()// .setCheese("马苏里拉") // Uncomment to test.setTomato("新鲜").setExtra("香肠").build();pizza.serve();} catch (IllegalArgumentException e) {System.out.println(e.getMessage());}}
}

在这个例子中,Pizza.Builder类允许顾客选择不同的配料,最终构建出一个完整的披萨对象。

区别总结

  1. 目的

    • 工厂模式:主要关注对象的创建,适用于创建简单或多种类型的对象。
    • 建造者模式:关注对象的构建过程,适用于构建复杂对象,尤其是有多个可选参数的情况,可以采用链式结构存储,
  2. 使用场景

    • 工厂模式:适合需要生成多个产品(如不同类型的食物)时,隐藏创建细节。
    • 建造者模式:适合构建步骤复杂的对象(如披萨),提供灵活的配置选项。
  3. 灵活性

    • 工厂模式:一般只提供一种创建方式。
    • 建造者模式:允许逐步构建,灵活性更高。

结论

在设计软件时,选择合适的模式至关重要。工厂模式和建造者模式各有其独特的优势,理解它们的区别和适用场景将有助于我们在实际开发中作出更好的设计选择。通过餐馆的例子,我们可以清晰地看到如何利用这两种设计模式来满足不同的需求。

http://www.yayakq.cn/news/213985/

相关文章:

  • 创意网站建设话术网站建设福建
  • pc网站和移动网站免费开发软件制作平台
  • 温州市网站建设哪家公司好横山桥网站
  • 手把手教你如何建立自己的网站网站建设首选唯美谷
  • 一个网站的基调在公司的小语种网站上
  • 做营销型网站 公司wordpress ip无法访问
  • 广州网站建设联系信科海珠用wordpress做什么内容
  • 网站群的建设策略南昌房产网官网
  • 浏览器做单页网站项目工业设计在线官网
  • 企业推广类网站网站建设企业宣传口号
  • 网站运营方案 网站建设iis服务器的默认网站
  • 电子商务网站建设前期最挣钱没人干的生意
  • 判断网站 是否用wordpress 建站韩国做美食网站有哪些
  • 学校网站开发方案模板软件大全安卓版下载
  • php+ajax网站开发典型实例 pdf南昌网站怎么做seo
  • 企业网站建设相关书籍广州seo网站推广优化
  • 专做网游视频的网站源码免费下载
  • 免费网站如何做推广方案建一个素材网站多少钱
  • dj音乐网站建设nas可以做网站服务器
  • 自己做h5网站用django做网站
  • diy学做衣服网站wordpress 后台禁用
  • 长沙网站关键词seo查询二建证书注册在哪个单位
  • 推广网站实例江苏华悦建设集团网站
  • 企业网站开发背景及意义怎样查看wordpress
  • 车陂手机网站建设邯郸wap网站建设公司
  • 做网站教程流程装修报价单明细表
  • 搜索郑州网站400电话网络推广商城网站
  • 花店网站建设目的成都高新区建设厅网站
  • 怎么让客户做网站优化wordpress 阅读更多
  • 企业网站建设方案 功能规划wordpress wpoptions