首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
hwx的offer快来
门头沟学院 Java
发布于广东
关注
已关注
取消关注
java设计模式-个人总结
@hwx的offer快来:
java设计模式-个人总结
1.常见设计模式知道哪些?2.设计模式的分类 创建型设计模式:单例模式构建模式原型模式抽象工厂模式工厂方法模式行为设计模式:状态模式命令模式解释器模式迭代器模式备忘录模式责任链模式模板方法模式观察者模式访问者模式中介者模式结构型设计模式:装饰者模式外观模式组合模式蝇量模式代理模式享元模式桥连接模式适配器模式简单解释:单例模式(Singleton):确保有且只有一个对象被创建。抽象工厂模式(Abstract Factory):允许客户创建对象的家族,而无需指定他们的具体类。工厂方法模式(Factory Method):由子类决定要创建的具体类是哪一个。装饰者模式(Decorator):包装一个对象,以提供新的行为。状态模式(State):封装了基于状态的行为,并使用委托在行为之间切换。迭代器模式(Iterator):在对象的集合之中游走,而不暴露集合的实现。外观模式(Facade):简化一群类的接口。策略模式(Strategy):封装可以互换的行为,并使用委托来决定要使用哪一个。代理模式(Proxy):包装对象,以控制对此对象的访问。适配器模式(Adapter):封装对象,并提供不同的接口。观察者模式(Observer):让对象能够在状态改变时被通知。模板方法模式(Template Method):有子类决定如何实现一个算法中的步骤。组合模式(Composite):客户用一致的方法处理对象集合和单个对象。命令模式(Command):封装请求成为对象。附:https://www.cnblogs.com/liuzhen1995/p/6047932.html3.单例模式1.单例模式5常见的写法饿汉式懒汉式双检锁静态内部类枚举2.单例的四大原则:构造私有以静态方法或者枚举确保实例只有一个,尤其是多线程环境确保反序列化时不会重新构造对象3.代码饿汉模式-在类被初始化时就已经在内存中创建了对象:以空间换时间,故不存在线程安全问题。public class SingleTon{ //其实就是new private static SingleTon INSTANCE = new SingleTon(); private SingleTon(){} public static SingleTon getInstance(){ return INSTANCE; }} 懒汉模式-在方法被调用后才创建对象,以时间换空间,在多线程环境下存在风险。public class SingleTon{ //先赋null 调用方法才申请内存空间 private static SingleTon INSTANCE = null; private SingleTon(){} //其实就是调用方法才new public static SingleTon getInstance() { if(INSTANCE == null){ INSTANCE = new SingleTon(); } return INSTANCE; } }静态内部类-用的最多public class SingleTon{ private SingleTon(){} //就是静态内部类里面new private static class SingleTonHoler{ private static SingleTon INSTANCE = new SingleTon(); } public static SingleTon getInstance(){ return SingleTonHoler.INSTANCE; } }双检检查锁public class SingleTon{ private static SingleTon INSTANCE = null; private SingleTon(){} //就是俩个多了if判断 和 synchronized public static SingleTon getInstance(){if(INSTANCE == null){ synchronized(SingleTon.class){ if(INSTANCE == null){ INSTANCE = new SingleTon(); } } return INSTANCE; } } }SingleTon方法INSTANCE = new SingleTon(); SingleTon方法:1.在堆内存开辟内存空间。2.在堆内存中实例化SingleTon里面的各个参数。3.把对象指向堆内存空间。附:深入理解单例模式:静态内部类单例原理https://blog.csdn.net/mnb65482/article/details/804585714.说下设计模式的原则1.设计模式的六大原则开闭原则里氏替换原则依赖倒转原则接口隔离原则最少知道原则合成复用原则解释:开闭原则:对扩展开放,对修改关闭。里氏代换原则:父类与子类的继承关系,在父类的基础上有新的方法(行为),调用的时候又能代替父类的方法而且不影响;依赖倒转原则:针对接口编程,依赖于抽象而不依赖于具体;最少知道原则:单一继承或者说就是单调用减少相互作用 合成复用原则:尽量使用合成/聚合的方式,而不是使用继承。5.Spring 框架中都用到了哪些设计模式?【单例模式】Spring 中的 Bean 默认都是单例的【简单工厂】由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。【工厂方法】实现了FactoryBean接口的bean是一类叫做factory的bean。其特点是,spring会在使用getBean()调用获得该bean时,会自动调用该bean的getObject()方法,所以返回的不是factory这个bean,而是这个bean.getOjbect()方法的返回值。【模板方法模式】 Spring 中 jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式。父类定义了骨架(调用哪些方法及顺序),某些特定方法由子类实现。最大的好处:代码复用,减少重复代码。除了子类要实现的特定方法,其他方法及方法调用顺序都在父类中预先写好了。【包装器设计模式 】 我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源。【观察者模式】Spring 事件驱动模型就是观察者模式很经典的一个应用。spring的事件驱动模型使用的是 观察者模式 ,Spring中Observer模式常用的地方是listener的实现【适配器模式】 Spring AOP 的增强或通知(Advice)使用到了适配器模式、spring MVC 中也是用到了适配器模式适配Controller。Spring定义了一个适配接口,使得每一种Controller有一种对应的适配器实现类,让适配器代替controller执行相应的方法。这样在扩展Controller时,只需要增加一个适配器类就完成了SpringMVC的扩展了【装饰器模式】动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更为灵活。Spring中用到的包装器模式在类名上有两种表现:一种是类名中含有Wrapper,另一种是类名中含有Decorator。【动态代理】切面在应用运行的时刻被织入。一般情况下,在织入切面时,AOP容器会为目标对象创建动态的创建一个代理对象。SpringAOP就是以这种方式织入切面的。织入:把切面应用到目标对象并创建新的代理对象的过程。【策略模式】Spring框架的资源访问Resource接口。该接口提供了更强的资源访问能力,Spring 框架本身大量使用了Resource 接口来访问底层资源。6.项目中用到哪些设计模式?略[看好戏]
点赞 22
评论 1
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
05-21 10:35
已编辑
东南大学 前端工程师
B站-暑期前端-二面
昨天面的,到现在还没有后续,估摸着可能凉了共计45分钟左右;在研究生阶段主要研究内容是?以什么语言为基础?在本科生阶段学习的主要内容是?好,然后因为你研究生阶段研究一些比如说神经网络,或如说智能安全相关的,当下人工智能处于风口,你觉得AI和前端相结合的方向有哪些?那你觉得,比如说刚才你聊到的那个根据设计稿来生成一些代码。从你的角度,它能做到什么样程度?可能会有一些什么样的问题呢?从你刚才分析的角度来看,就是我们整个开发过程去看的话。你觉得最终AI辅助开发,能够带来多少的提效?反过来看这个问题,你觉得AI生成代码会有哪些局限性?比如说针对的一开始提始提中,比如说团队内部他有一些规范,然后有一些组...
点赞
评论
收藏
分享
05-21 20:05
湖南大学 运营
字节差旅审批变严了,看来不能环球旅游了
昨天字节新发了通知,对于差旅提出了新的要求。国际电商人员出差,新增需要审批到部门三/四级负责人,也就是Bob-1左右的级别;同时,申请人需填写详细行程,审批人可直接看到对应的具体差旅成本。机酒价格新增“合理上限”。 之前字节就通报过,有员工非工作时间住迪士尼。这次差旅调整则看上去是重点针对国际化电商了。毕竟之前就有很多内部同学羡慕国际化电商的同学,可以随便找个理由就去“公费旅游”,没有航司金卡+万豪白金+环球旅行朋友圈的三件套都不好意思说自己是国际化电商的人。不仅有出差津贴还有这福利,确实值得羡慕。 👉原文如下: 大家好,为进一步规范差旅管理,国际电商差旅要求及差旅申请流程进行了更新,具体变...
字节跳动公司福利 942人发布
投递字节跳动等公司8个岗位 >
点赞
评论
收藏
分享
04-21 01:55
火炉中学 Java
27双非只靠外卖果然找不到实习
一个月前做了一版简历,项目只有苍穹外卖,别说offer,一个后端实习的面试都没有,只拿到一个俩小厂offer,一个运维一个让转.net。这个月速通了黑马的点评,JVM基础,JUC,差不多是把初级技能点亮了,后面打算找点高质项目和进阶知识点了,希望大佬们给鼠鼠点建议。把简历优化了一下,加上了点评,明天重新开投,希望再过一个月能找到暑假的offer了
牛客611975839号:
佬,外卖中的mq有实现吗?
点赞
评论
收藏
分享
04-02 12:39
广东轻工职业技术学院 Java
Java程序员找对象
程序员小假:
人才
点赞
评论
收藏
分享
05-22 23:16
杭州电子科技大学 Java
字节三面秒挂 我做对了什么
互联网中字节跳动是有三轮技术面的,而且每一轮面试都有手撕代码,其他大厂或多或少有些轮次没有手撕一二面都是较为基础的项目简问和八股三面是大leader,对我的实习项目进行了深挖自我介绍完之后,让我介绍一下实习(我说了刚一分钟被严重大声打断,态度极差,被告知只需要介绍业务,他不想听是怎么实现的)从这之后我变得有些紧张、慌乱了,暗示自己调整状态,实习业务介绍完之后开始深挖各种相关场景,与业务关联的上下游实现,并要求介绍上下游业务,最后让我介绍具体如何实现(那之前为什么不一起都问)后续会深问几个八股的底层原理,问了sql注入的介绍,如何解决,具体情况(真是第一次被问到sql注入,完全瞎说)手撕代码是一...
自言自语着:
我字节三面也是,上来问个你知道你的电脑内存多大吗,直接给我整懵了
查看6道真题和解析
毕业季,给职场新人一些建议
牛客创作赏金赛
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
1
1
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
得物暑期实习oc
1.6W
2
...
来算一算你的offer究竟到手工资多少!(详细教程)
1.0W
3
...
【26届四段大厂】实习爆炸产出方法论 2.0
8336
4
...
感觉在字节实习有点幸福了
6661
5
...
28届现在真的找不到日常吗?
6006
6
...
广东java学院本的暑期末班车
5094
7
...
💗 521凉面筋真好吃~记录一把本小女孩人生第一面
5069
8
...
暑期实习后,如何完成学生到职场人的身份转换?
5019
9
...
就是说有些招聘要求别太离谱噢
4259
10
...
租房是大家出社会的第一课!
4240
创作者周榜
更多
正在热议
更多
#
毕业季,给职场新人一些建议
#
30461次浏览
510人参与
#
国企vs私企,怎么选?
#
20475次浏览
168人参与
#
我的求职总结
#
31918次浏览
522人参与
#
辞职之后最想做的一件事
#
11971次浏览
173人参与
#
我的实习日记
#
2451441次浏览
25495人参与
#
选offer应该考虑哪些因素
#
22478次浏览
321人参与
#
小米硬件提前批进度交流
#
165067次浏览
1516人参与
#
为了秋招你都做了哪些准备?
#
11259次浏览
169人参与
#
你想吐槽公司的哪些规定
#
18180次浏览
70人参与
#
晒一晒你收到的礼盒
#
63100次浏览
378人参与
#
薪资一样,你会选择去大厂还是小公司
#
16945次浏览
103人参与
#
硬件开发岗知多少
#
10359次浏览
111人参与
#
字节跳动工作体验
#
393491次浏览
4301人参与
#
机械人值得去的国央企
#
59676次浏览
406人参与
#
你见过最离谱的招聘要求是什么?
#
188920次浏览
1405人参与
#
Offer比较,求稳定还是求发展
#
49815次浏览
241人参与
#
我的工作日记
#
100401次浏览
1281人参与
#
工作丧失热情的瞬间
#
277774次浏览
2335人参与
#
第一份工作应该只看薪资吗
#
139291次浏览
1462人参与
#
你想留在一线还是回老家?
#
38791次浏览
456人参与
牛客网
牛客企业服务