先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Java开发知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:xhs1999xhs (备注Java)
正文
🔎这里是JAVA长虹键法,关注我学习JAVA不迷路
👍如果对你有帮助,给博主一个免费的点赞以示鼓励
欢迎各位🔎点赞👍评论收藏⭐️
🗡专栏介绍
【JAVA长虹键法】 主要讲了23种设计模式,本系列专栏会以虹猫蓝兔七侠传的故事为例来给大家详细分析所有模式,希望能给大家带来帮助!
🗡本期介绍
模式: 普通工厂模式
案例: 一个天外陨石(抽象产品),七剑(产品)
一个铸剑传承(抽象工厂),两个铸剑师(工厂)
男铸剑师负责铸造至阳之剑(长虹剑、青光剑、奔雷剑、旋风剑、雨花剑)
女铸剑师负责铸造至阴之剑(冰魄剑、紫云剑)
文章目录
👀什么是工厂模式
在《【JAVA长虹键法】第三式 简单工厂模式》一期中我们介绍了简单工厂模式,提到了简单工厂模式违背了开闭原则,而“工厂方法模式”是对简单工厂模式的进一步抽象化,其好处是可以使系统在不修改原来代码的情况下引进新的产品,即满足开闭原则。
🗡优点
1、用户只需要知道具体工厂的名称就可得到所要的产品,无须知道产品的具体创建过程。
2、灵活性增强,对于新产品的创建,只需多写一个相应的工厂类。
3、典型的解耦框架。高层模块只需要知道产品的抽象类,无须关心其他实现类,满足迪米特法则、依赖倒置原则和里氏替换原则。
🗡缺点
1、类的个数容易过多,增加复杂度
2、增加了系统的抽象性和理解难度
3、抽象产品只能生产一种产品,此弊端可使用抽象工厂模式解决。
🗡应用场景
1、客户只知道创建产品的工厂名,而不知道具体的产品名。如 TCL 电视工厂、海信电视工厂等。
2、创建对象的任务由多个具体子工厂中的某一个完成,而抽象工厂只提供创建产品的接口。
3、客户不关心创建产品的细节,只关心产品的品牌
👀普通工厂的实现
案例的主要角色如下:
抽象工厂(Abstract Factory):铸剑传承
工厂(SimpleFactory):男铸剑师、女铸剑师
抽象产品(Product):天外陨石(铸剑的原材料)
具体产品(ConcreteProduct):长虹剑、青光剑、奔雷剑、旋风剑、雨花剑、冰魄剑、紫云剑
案例:
七剑分阴阳,长虹剑、青光剑、奔雷剑、旋风剑、雨花剑属至阳之剑。
冰魄剑、紫云剑属至阴之剑。
男铸剑师传承了打造至阳之剑的方法,女铸剑师传承了打造至阴之剑的方法。
七侠分别找两位铸剑师打造属于自己的剑
🗡抽象产品、产品
Ss接口(天外陨石):
接口内声明了一个方法
public interface Ss {
void show();
}
Aa类实现接口Ss(长虹剑):
实现Ss接口
public class Aa implements Ss {
@Override
public void show() {
System.out.println("打造了一把长虹剑");
}
}
Bb类实现接口Ss(冰魄剑):
实现Ss接口
public class Bb implements Ss {
@Override
public void show() {
System.out.println("打造了一把冰魄剑");
}
}
Cc类实现接口Ss(紫云剑):
实现Ss接口
public class Cc implements Ss {
@Override
public void show() {
System.out.println("打造了一把紫云剑");
}
}
Dd类实现接口Ss(雨花剑):
实现Ss接口
public class Dd implements Ss {
@Override
public void show() {
System.out.println("打造了一把紫云剑");
}
}
Ee类实现接口Ss(青光剑):
实现Ss接口
public class Ee implements Ss {
@Override
public void show() {
System.out.println("打造了一把紫云剑");
}
}
Ff类实现接口Ss(奔雷剑):
实现Ss接口
public class Ff implements Ss {
@Override
public void show() {
System.out.println("打造了一把紫云剑");
}
}
Gg类实现接口Ss(旋风剑):
实现Ss接口
public class Gg implements Ss {
@Override
public void show() {
System.out.println("打造了一把紫云剑");
}
}
🗡抽象工厂、工厂
Zz接口(铸剑传承):
接口内声明了一个铸剑方法abc()
public interface Zz {
Ss abc(String a);
}
Nan类实现接口Zz(男铸剑师):
实现Zz接口
public class Nan implements Zz {
private static Ss ss;
public Ss abc(String a) {
if ("长虹剑".equals(a)) {
ss = new Aa();
} else if ("奔雷剑".equals(a)) {
ss = new Ff();
} else if ("青光剑".equals(a)) {
ss = new Ee();
} else if ("雨花剑".equals(a)) {
ss = new Dd();
} else if ("旋风剑".equals(a)) {
ss = new Gg();
} else {
System.out.println("铸剑失败");
}
return ss;
}
}
Nv类实现接口Zz(女铸剑师):
实现Zz接口
public class Nv implements Zz {
private static Ss ss;
public Ss abc(String a) {
if ("冰魄剑".equals(a)) {
ss = new Bb();
} else if ("紫云剑".equals(a)) {
ss = new Cc();
} else {
System.out.println("铸剑失败");
}
return ss;
}
}
🗡测试
测试类:
public class Demo {
public static void main(String[] args) {
System.out.println("---------至阳之剑-------------");
//男铸剑师
Nan nan = new Nan();
Ss aa = nan.abc("长虹剑");
Ss dd = nan.abc("雨花剑");
Ss ee = nan.abc("青光剑");
Ss ff = nan.abc("奔雷剑");
Ss gg = nan.abc("旋风剑");
aa.show();
dd.show();
ee.show();
ff.show();
gg.show();
System.out.println("---------至阴之剑-------------");
//女铸剑师
Nv nv = new Nv();
Ss bb = nv.abc("冰魄剑");
Ss cc = nv.abc("紫云剑");
bb.show();
cc.show();
}
}
下期预告
模式: 抽象工厂模式
案例: 七侠师傅和师母为七侠打造七剑和培养小灵鸽
最后
在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:xhs1999xhs(备注Java)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
资料及案例
[外链图片转存中…(img-J4uGmsTb-1713616352346)]
[外链图片转存中…(img-wwoxitjy-1713616352347)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!
大家看完有什么不懂的可以在下方留言讨论也可以关注。
觉得文章对你有帮助的话记得关注我点个赞支持一下!
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:xhs1999xhs(备注Java)
[外链图片转存中…(img-p0sEFOkS-1713616352347)]
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!