2024年Java最新Java设计模式:桥接模式解决的架构设计痛点,一份非常适合收藏的Java进阶面试题

最后

看完上述知识点如果你深感Java基础不够扎实,或者刷题刷的不够、知识不全面

小编专门为你量身定制了一套<Java一线大厂高岗面试题解析合集:JAVA基础-中级-高级面试+SSM框架+分布式+性能调优+微服务+并发编程+网络+设计模式+数据结构与算法>

image

针对知识面不够,也莫慌!还有一整套的<Java核心进阶手册>,可以瞬间查漏补缺

image

全都是一丢一丢的收集整理纯手打出来的

更有纯手绘的各大知识体系大纲,可供梳理:Java筑基、MySQL、Redis、并发编程、Spring、分布式高性能架构知识、微服务架构知识、开源框架知识点等等的xmind手绘图~

image

image

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

一个汽车厂:

public class CarFactory extends Factory{

@Override

public void produce() {

System.out.println(“生产汽车”);

}

@Override

public void sell() {

System.out.println(“销售汽车”);

}

}

测试:

Factory factory = new CarFactory();

factory.operation();

输出的是汽车厂的生产和销售活动。

但是现在问题来了,以这样的架构设计,如果有一天行业和市场发生变化,要开设一家制造手机的手机工厂,那以前创建和运转良好的船厂、汽车厂已有的资源均不能使用。工厂要转型生产手机,则需要重新布置手机生产的产线。换言之,以前那套架构转型成本太高,缺乏资源的复用,这是痛点。有没有一种连接(桥接、桥梁)办法,实现高内聚,低耦合工厂和产品?


现在开始改进。

先把工厂生产和销售的对象抽象成Product模型:

public abstract class Product {

/**

  • 产品生产

*/

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{

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

image

上述的面试题答案都整理成文档笔记。 也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

image

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

上述的面试题答案都整理成文档笔记。 也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

[外链图片转存中…(img-Ch9klNlB-1714920331940)]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

需要这份系统化的资料的朋友,可以点击这里获取

  • 27
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值