设计模式

以下是设计模式的分类及列表(基于经典23种设计模式):

创建型模式(对象创建机制)

  1. 单例模式(Singleton) 确保一个类仅有一个实例,并提供全局访问点。
  2. 工厂方法模式(Factory Method) 定义一个创建对象的接口,由子类决定实例化哪个类。
  3. 抽象工厂模式(Abstract Factory) 提供一个创建一系列相关或依赖对象的接口,无需指定具体类。
  4. 建造者模式(Builder) 将复杂对象的构建与表示分离,使相同构建过程可创建不同表示。
  5. 原型模式(Prototype) 通过复制现有对象创建新对象,避免直接实例化。

结构型模式(类与对象的组合)

  1. 适配器模式(Adapter) 转换一个类的接口,使其能适配另一个接口。
  2. 桥接模式(Bridge) 分离抽象与实现,使两者可独立变化。
  3. 组合模式(Composite) 将对象组合成树形结构,以统一方式处理单个对象和组合对象。
  4. 装饰器模式(Decorator) 动态地为对象添加额外职责,比继承更灵活。
  5. 外观模式(Facade) 为子系统提供统一接口,简化客户端与子系统的交互。
  6. 享元模式(Flyweight) 共享大量细粒度对象,减少内存占用。
  7. 代理模式(Proxy) 控制对对象的访问,提供替代对象以增强功能或减少开销。

行为型模式(对象间的通信与职责分配)

  1. 责任链模式(Chain of Responsibility) 将请求的发送者与接收者解耦,使多个对象都有机会处理请求。
  2. 命令模式(Command) 将请求封装为对象,支持撤销、排队等操作。
  3. 解释器模式(Interpreter) 定义语言的文法,并解释执行该语言的句子。
  4. 迭代器模式(Iterator) 提供一种遍历集合元素的统一方式,无需暴露内部结构。
  5. 中介者模式(Mediator) 通过中介对象协调多个对象间的交互,减少耦合。
  6. 备忘录模式(Memento) 保存对象状态,允许恢复到之前状态。
  7. 观察者模式(Observer) 当对象状态变化时,自动通知依赖它的其他对象。
  8. 状态模式(State) 允许对象在内部状态改变时改变行为,避免过多条件判断。
  9. 策略模式(Strategy) 定义一系列算法,封装后可互换使用,支持运行时动态选择。
  10. 模板方法模式(Template Method) 定义算法的骨架,子类实现具体步骤。
  11. 访问者模式(Visitor) 将算法与对象结构解耦,允许对结构中的元素执行不同操作。

其他扩展模式(非经典23种)

  • 空对象模式(Null Object) 处理空值问题,避免空指针异常。
  • 策略模式变体(如策略与模板方法结合) 根据场景灵活组合模式。

以上是常见的设计模式分类及列表,实际应用中可根据需求组合或扩展。

Java设计模式 文章被收录于专栏

设计模式是软件开发中针对反复出现的问题所总结归纳出的通用解决方案,它可以帮助开发者更高效地构建软件系统,提升代码的可维护性、可扩展性和可复用性。

全部评论

相关推荐

迟缓的马里奥求你们别...:我双2,FPGA方向,在成都找工作投了上百家,收到面试的不超过10家,是成都这个地方太有说法了。西南柬埔寨
秋招,不懂就问
点赞 评论 收藏
分享
2025-12-08 16:04
门头沟学院 Java
本人本科末9,今年大三。大一大二一直玩,什么都没学到,在大学混日子混了两年,每天不是在打农就是在steam。大三开学时一个和自己玩的好的同学去实习了,才发现自己白白浪费了两年的时间,如果真不冲一下就真去京东,阿里,美团送外卖了今年9月份开始学Java,一开始一直跟着黑马视频看,后面发现看视频效率太低了,时间根本不够,就开始主要看文档和看书了。这几个月一直在学,真的尽力了,希望暑期前能找一份好点的实习。我简历上面的项目大多没有指标,但是实际上我是真没多少时间去做项目,我基本主要是动手只做了外卖和天机,黑马点评和12306我都是只是看了项目。主要是自己的时间真的不多,但是这样子自己的代码能力确实比较差。而且自己也没有做过实际的工程,我顶多用jmeter测试一下接口tps啥的,比如使用Redis管道提升了一点性能,减少Redis交互,这种值得写上去吗?需不需要具体到某些数字求求各位佬给一些建议,看看简历怎么优化?项目介绍是不是不够详细?没有具体到业务方面。项目会不会提到大致实现原理导致面试官一看简历就知道怎么实现就没有问的欲望?专业技能一些字段是不是要加粗,是不是写太啰嗦了?有没有必要压缩内容变成一页?两页的话是不是都要把两页填地满满的。
给秋招一个交代:一页简历最好,网上做的项目放面试官眼里都是玩具,简历上不需要强调有什么难点,记住就行防止真的问。然后背八股,多投多面试就行
点赞 评论 收藏
分享
评论
点赞
8
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务