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

wordpress goto主题上海seo推广外包

wordpress goto主题,上海seo推广外包,做外贸生意上哪个网站,新零售系统软件哪个好在软件设计中,工厂模式和建造者模式是两种常见的设计模式,它们都是用于创建对象,但是各自有不同的应用场景和目的。本文将通过餐馆点餐的例子,深入探讨这两种模式的区别。 工厂模式 工厂模式的核心思想是通过一个抽象工厂类来创…

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

工厂模式

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

示例:餐馆的工厂模式

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

// 抽象产品
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/829679/

相关文章:

  • 山西建设厅官方网站网络营销推广方法是对什么和什么的合理利用
  • 中国建设银行学习网站最好的营销型网站
  • 鹤壁做网站优化视频网站中滑动列表怎么做的
  • 小程序开发公司网站源码下载php网站开发小程序
  • 建设一个网站需要哪些硬件设备wordpress 显示备案
  • 做网站产品介绍织梦网站支付安装
  • 网站所用的图片大小临沂河东建设局网站
  • php网站挂马表格如何做网站
  • 郑州网站制作怎么样网站vip功能怎么实现
  • 成都网站制作怎么收费网站各种按钮代码
  • 网站编辑怎么做的网络营销方案设计毕业设计
  • html5效果网站北京移动端网站
  • 深圳网站建设ue精品网站建设比较好
  • 网站建设分录自己建设网站网站赚钱
  • 企业网站建设一般多少钱建设一个教程视频网站需要什么资质
  • 雄安网站建设单位做网站图片素材
  • 开网络公司需要多少资金网站优化需要哪些工具
  • 软件前端主要做什么最适合seo的网站源码
  • 泊头网站排名优化网站建设难吗
  • 网站兼容性网页设计学习教程
  • 网站整站优化推广方案wordpress做成app
  • 做网站怎么穿插元素电影聚合网站开发
  • 北京网站备案拍照地点做兽设的网站
  • 只做动漫的h网站长乐市住房和城乡建设局网站
  • 大型网站建设制作公司网站结构模板
  • 网站需求方案施工企业排名
  • 网站开发的目的意义特色创新做一个关于电影的网页设计
  • 网站规划与建设课程营销型网站建设方面的书
  • 国外风格网站软件工程考研方向
  • 网站加搜索框wordpress自适应画廊