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

静态工厂模式,抽象工厂模式,建造者模式

静态工厂模式

ublic class FruitFactory {public static Fruit getFruit(String name) {Fruit f=null;switch (name){case "APPLE":{f=new Apple();}case "BANANA":{f=new Banana();}default :{System.out.println("Unknown Fruit");}}return f;}
}

抽象工厂模式

 建造者模式


public class MealBuilder {
public Meal suMeal() {Meal m=new Meal();m.additeam(new SuBuger());m.additeam(new bing());return m;
}public Meal rouMeal() {Meal m=new Meal();m.additeam(new bing());m.additeam(new RouBuger());m.additeam(new RouBuger());m.additeam(new RouBuger());return m;}public Meal haohua(){Meal m=new Meal();m.additeam(new bing());m.additeam(new RouBuger());m.additeam(new RouBuger());m.additeam(new SuBuger());return m;}
}
public class Meal {
private ArrayList<iteam> iteams=new ArrayList<iteam>();
public void additeam(iteam i) {iteams.add(i);
}
public double getCost() {return iteams.stream().mapToDouble(iteam::price).sum();
}
public void showItems() {iteams.stream().forEach(e->{System.out.println(e.name());e.packing().pack();System.out.println(e.price());});
}
}
public interface iteam {
String name();
Packing packing();
double price();
} 

public class Main {public static void main(String[] args) {MealBuilder builder=new MealBuilder();Meal haohua=builder.haohua();double cost=haohua.getCost();System.out.println("total"+cost);haohua.showItems();}
}
public abstract class ClodDrink  implements iteam{@Overridepublic Packing packing() {return new Bottle();}
}
public interface Packing {void pack();
}

public class Wapper implements Packing{@Overridepublic void pack() {// TODO Auto-generated method stubSystem.out.println("用纸包装");}}
public class bing extends ClodDrink{@Overridepublic String name() {// TODO Auto-generated method stubreturn "北冰洋";}@Overridepublic double price() {return 3.0;}}

total15.5
北冰洋
用瓶子包装
3.0
肉的
用纸包装
5.0
肉的
用纸包装
5.0
素的
用纸包装
2.5
 

http://www.lryc.cn/news/161155.html

相关文章:

  • 【动手学深度学习笔记】--门控循环单元GRU
  • 浅析linux异步io框架 io_uring
  • 访问者模式的一个使用案例——文档格式转换
  • 【MySql】数据库的聚合查询
  • Linux初探 - 概念上的理解和常见指令的使用
  • 苹果上架Guideline 4.3 - Design
  • 【数据分析入门】【淘宝电商API接入与电商数据分析】初识Web API(一)
  • 蓝桥杯官网练习题(李白打酒)
  • 聚类分析 | MATLAB实现基于SOM自组织特征映射聚类可视化
  • Spring AOP:面向切面编程在实际项目中的应用
  • python爬虫的反扒技术有哪些如何应对
  • 网络原理,了解xml, json,protobuffer的特点
  • 工具 | XShell的学习与使用
  • 基于微服务+Java+Spring Cloud +UniApp +MySql开发的智慧工地源码(物联网、人工智能、AI识别、危大工程)
  • Kafka安装与使用
  • php出现SSL certificate problem: unable to get local issuer certificate的解决办法
  • Flask狼书笔记 | 07_留言板
  • 文件导入之Validation校验List对象数组
  • 【Linux】文件系统
  • 1.5 空间中的平面与直线
  • 【深度学习】实验06 使用TensorFlow完成线性回归
  • 2023国赛 C题论文 蔬菜类商品自动定价与补货策略
  • 使用 【jacoco】对基于 SpringBoot 和 Dubbo RPC 的项目生成测试覆盖率报告:实践+原理
  • Mac OS合集
  • 算法之位运算
  • flask使用Flask-Mail实现邮件发送
  • React refers to UMD global, but the current file is a module vite初始化react项目
  • vscode 调试 ROS2
  • TuyaOS开发学习笔记(2)——NB-IoT开发SDK架构、运行流程
  • Qt应用开发(基础篇)——普通按钮类 QPushButton QCommandLinkButton