public abstract void produce();
/**
- 产品销售
*/
public abstract void sell();
}
抽象工厂,传入一个什么样的产品就生产和销售该产品:
public abstract class Factory {
private Product product;
public Factory(Product product) {
this.product = product;
}
public void setProduct(Product product) {
this.product = product;
}
/**
- 工厂运营。
*/
public void operation() {
product.produce();
product.sell();
}
}
具体的工厂实现:
public class SomeFactory extends Factory{
public SomeFactory(Product product) {
super(product);
}
}
那么原先的船和汽车作为产品的角色,分别抽象定义:
public class Boat extends Product {
@Override
public void produce() {
System.out.println(“生产船”);
}
@Override
public void sell() {
System.out.println(“销售船”);
}
}
public class Car extends Product{
@Override
public void produce() {
System.out.println(“生产汽车”);
}
@Override
public void sell() {
System.out.println(“销售汽车”);
}
}
测试:
Car car=new Car();
Factory factory=new SomeFactory(car);
factory.operation();
Boat boat=new Boat();
factory.setProduct(boat);
factory.operation();
输出:
生产汽车
销售汽车
生产船
销售船
如果市场行情发生变化,现在需要转型生产手机,那么只需要增加一款产品Phone即可,原有的工厂产线都得到复用:
public class Phone extends Product{
@Override
public void produce() {
System.out.println(“生产手机”);
}
@Override
public void sell() {
System.out.println(“销售手机”);
}
}
测试:
Car car=new Car();
Factory factory=new SomeFactory(car);
factory.operation();
Boat boat=new Boat();
factory.setProduct(boat);
factory.operation();
Phone phone=new Phone();
factory.setProduct(phone);
factory.operation();
输出:
生产汽车
销售汽车
生产船
销售船
生产手机
销售手机
附:
最后希望可以帮助到大家!
千千万万要记得:多刷题!!多刷题!!
之前算法是我的硬伤,后面硬啃了好长一段时间才补回来,算法才是程序员的灵魂!!!!
篇幅有限,以下只能截图分享部分的资源!!
(1)多线程(这里以多线程为代表,其实整理了一本JAVA核心架构笔记集)
(2)刷的算法题(还有左神的算法笔记)
(3)面经+真题解析+对应的相关笔记(很全面)
(4)视频学习(部分)
ps:当你觉得学不进或者累了的时候,视频是个不错的选择
在这里,最后只一句话:祝大家offer拿到手软!!
截图分享部分的资源!!
(1)多线程(这里以多线程为代表,其实整理了一本JAVA核心架构笔记集)
[外链图片转存中…(img-PJj6R9dT-1714391836412)]
(2)刷的算法题(还有左神的算法笔记)
[外链图片转存中…(img-UcoDnFyE-1714391836413)]
(3)面经+真题解析+对应的相关笔记(很全面)
[外链图片转存中…(img-uNiPGHyO-1714391836413)]
(4)视频学习(部分)
ps:当你觉得学不进或者累了的时候,视频是个不错的选择
在这里,最后只一句话:祝大家offer拿到手软!!