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

静态工厂模式

复制代码
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{
	@Override
	public Packing packing() {
		return new Bottle();
	}
}

public interface Packing {
 void pack();
}


public class Wapper implements Packing{
	

	@Override
	public void pack() {
		// TODO Auto-generated method stub
		System.out.println("用纸包装");
	}

}

public class bing extends ClodDrink{

	@Override
	public String name() {
		// TODO Auto-generated method stub
		return "北冰洋";
	}

	@Override
	public double price() {
		return 3.0;
	}

}

total15.5

北冰洋

用瓶子包装

3.0

肉的

用纸包装

5.0

肉的

用纸包装

5.0

素的

用纸包装

2.5

相关推荐
凤凰院凶涛QAQ2 分钟前
《Java版数据结构 & 集合类剖析》集合框架的封装设计与顺序表:“从 Iterable 到 ArrayList:集合框架的‘职业树“
java·开发语言·数据结构
孟华苏16 分钟前
怎么快速排查内存泄漏问题
java·开发语言·python
noipp19 分钟前
推荐题目:洛谷 P16510 [GKS 2015 #C] gRanks
java·c语言·开发语言·c++·python·算法
flyinmind19 分钟前
Java环境与Android环境中使用QuickJS
java·开发语言·javascript·quickjs
不吃鱼的羊20 分钟前
DaVinci Developer自动连接
java·开发语言
farerboy26 分钟前
15-Java while 和 do...while循环
java·后端
在繁华处29 分钟前
Java从零到熟练(十二):Java与AI工具整合
java·人工智能·python
凯瑟琳.奥古斯特34 分钟前
力扣1235完整解法详解
java·开发语言·leetcode
quan_泉36 分钟前
DIDCTF 取证初学者
java·服务器·前端
i220818 Faiz Ul38 分钟前
民谣网站|基于Springboot的民谣网站管理系统(源码+数据库+文档)
java·数据库·spring boot·后端·论文·毕设·民谣网站