首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
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-14 01:10
亚信科技(中国)有限公司_网络工程师(准入职员工)
亚信科技暑期实习内推
5月是最缺简历的时候,不限学校,不限学历,抓紧投递!【公司介绍】亚信科技是领先的软件产品、解决方案和服务提供商,拥有行业领先的研发能力,已形成包括客户关系管理、计费账务、大数据、人工智能、5G网络智能化、研发运维一体化、数字化运营、PaaS平台、物联网产品等在内的AISWare产品体系。【实习岗位】网络工程师、大数据开发工程师、前端开发工程师、UI设计、运营、米哈游、产品、经管、新媒体运营、售前、项目助理【待招城市】北京、贵阳、银川、成都、石家庄、郑州【内推链接】https://jinshuju.net/f/F1WDOJ【内推码】YX01(内推简历优先筛选!抓紧投递!填表单会自动帮忙上系统,抓...
投递亚信科技(中国)有限公司等公司6个岗位 >
点赞
评论
收藏
转发
202258
05-17 16:26
山东大学 计算机类
实习难求——做个总结
实习应该是难有了。到今日5.17为止,综合考虑过往经历和最近面试,不得不承认这一结论。现,总结下这段找实习的经历,以求后进:遥记得,三月份才起手准备,整一个月的多数时间在练力扣,刷hot100,实习投递方面仅投了一个华为。四月份,上半月为了准备17号的机考和临近的实验室讨论班,依然把时间重心放在了练代码上,把牛客的华为中等题刷了个遍,结果机考自己硬上拿了前两题,虽然通过,但仅仅330分还不算很有优势的分数。此处后悔没叫外援,没争取到足够优势。机考结束后,才开始着手多投递了四家大公司,后来也基本上没了动静,应当是投递有些晚了。接着华为的性格测试、技术面、主管面等陆续到来,最后挂了。此时已到了四月...
我的实习求职记录
点赞
评论
收藏
转发
牛客848889590号
03-29 13:51
已编辑
C工程师
Debuff叠满了
#简历被挂麻了,求建议# 二本+gap1年+初创
简历被挂麻了,求建议
点赞
评论
收藏
转发
王者648
05-17 14:30
香港中文大学
不愧是ATMD大厂出来的人才啊
在小红书一个在阿里、字节、美团都呆过的小姐姐整理的租房贴!!!小姐姐现在在美团上班,以美团为原点整理了望京这块的租房攻略图1是位置示意+图2对应序号的小区详细介绍你们在ATMD工作过的人都是这样善良又牛逼的吗!!let's 狠狠学习!!!以及,有没有上海抖音人也出份攻略,即将要租房的孩子迎风期盼 #ATMD# #美团# #抖音# #阿里# #租房# #租房前辈的忠告#
租房前辈的忠告
点赞
评论
收藏
转发
华师蜗牛哥
05-14 22:49
华中师范大学 计算机类
腾讯CSIG凉经
问啥差不多都忘了,记录一下手撕题5.10 一面:1.股票预测(leetcode 121)(秒)2.求1的个数(leetcode 233)(直接暴力,找不到规律)面完秒过5.14 二面(最小丑的一集):没问一个题,只做手撕1.求子数组为k的倍数(https://www.nowcoder.com/practice/857d6f49e3ee4e568cc243cbf9956efd)(略微改动,限制为k的倍数,且子数组长度>1。几乎秒了,给面试官解释了好久)2.求1的个数(leetcode 233)(笑了,面完是看了的,发现是规律题而且一时半会看不明白,存在幸存者偏差心理认为二面不会出这题了,纯...
腾讯二面514人在聊
点赞
评论
收藏
转发
1
1
评论
分享
回复帖子
全站热榜
1
...
盲审已过,答辩已过,工作已签
1.9W
2
...
开摆了,写小说去了
1.0W
3
...
【有奖活动】浅聊一下我的实习⭐
8979
4
...
没offer的我们也很优秀偶
7744
5
...
真有必要读研吗
7302
6
...
快手客户端开发工程师(1)
6076
7
...
双非本 腾讯WXG暑期已offer | 附面经
6022
8
...
5.20携程笔试
5967
9
...
pcg qq 一面
5045
10
...
滴滴秋储-服务端开发 OC
4996
正在热议
#
牛客帮帮团来啦!有问必答
#
799731次浏览
12642人参与
#
机械制造薪资爆料
#
317498次浏览
3697人参与
#
晒一晒我的offer
#
3444509次浏览
55039人参与
#
0offer是寒冬太冷还是我太菜
#
424356次浏览
4890人参与
#
海康威视求职进展汇总
#
99979次浏览
1202人参与
#
你的秋招进行到哪一步了
#
366300次浏览
6382人参与
#
国企vs私企,你更想去?
#
19940次浏览
201人参与
#
投了多少份简历才上岸
#
59974次浏览
968人参与
#
荣耀求职进展汇总
#
68903次浏览
686人参与
#
想实习转正,又想准备秋招,我该怎么办
#
115851次浏览
1294人参与
#
提前批的机械人,你们都有面试了吗
#
10165次浏览
148人参与
#
简历无回复,你会继续海投还是优化再投?
#
22617次浏览
316人参与
#
毕业租房也有小确幸
#
27053次浏览
1486人参与
#
你的工作大概什么时候入职?
#
4779次浏览
56人参与
#
华为求职进展汇总
#
536166次浏览
5118人参与
#
投递实习岗位前的准备
#
625739次浏览
11152人参与
#
非技术岗是怎么找实习的
#
77796次浏览
1434人参与
#
实习生如何通过转正
#
26695次浏览
355人参与
#
学历对求职的影响
#
140606次浏览
1603人参与
#
工作压力大怎么缓解
#
10942次浏览
157人参与
牛客网
牛客企业服务