Java设计模式_概述(设计模式类型和基本原则)

这篇具有很好参考价值的文章主要介绍了Java设计模式_概述(设计模式类型和基本原则)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、设计模式

设计模式(Design pattern)代表了最佳的实践,是软件开发人员在软件开发过程中面临一般问题的解决方案,是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。是优秀程序猿的经验结晶。
但不推荐刚入门的开发者学习,哪怕把代码搞的一塌糊涂,也要先将功能完成,初学者,迈过坑是必然的,只有对自己编写的代码不满意,你才会体会到设计模式的重要性,也才能更加理解。

二、四大类型

设计模式可以分为四大类:创建型模式(Creational Patterns)、结构型模式(Structural Patterns)、行为型模式(Behavioral Patterns)、J2EE 设计模式
1、 创建型模式;
特点:这些设计模式提供了一种在创建对象的同时隐藏创建逻辑的方式,而不是使用 new 运算符直接实例化对象。
好处:这使得程序在判断针对某个给定实例需要创建哪些对象时更加灵活
包括:
(1)、 工厂模式(FactoryPattern);
(2)、 抽象工厂模式(AbstractFactoryPattern);
(3)、 单例模式(SingletonPattern);
(4)、 建造者模式(BuilderPattern;
(5)、 原型模式(PrototypePattern);
2、 结构型模式;
特点:这些设计模式主要处理类或对象的组合,通过继承或组合的方式获得更灵活的结构,以适应需求变化对对象结构带来的影响。
好处:简化系统的设计和实现,使其具有更好的可扩展性和可维护性。
包括
(1)、 适配器模式(AdapterPattern);
(2)、 桥接模式(BridgePattern);
(3)、 过滤器模式(Filter、CriteriaPattern);
(4)、 组合模式(CompositePattern);
(5)、 装饰器模式(DecoratorPattern);
(6)、 外观模式(FacadePattern);
(7)、 享元模式(FlyweightPattern);
(8)、 代理模式(ProxyPattern);
3、 行为型模式;
特点:这些设计模式专注于对象之间的通信和职责分配。它们通过类继承或对象组合来划分职责,以应对需求变化对多个交互对象的影响。
好处:有助于系统的行为管理,使得系统更加灵活和易于维护。
包括
(1)、 责任链模式(ChainofResponsibilityPattern);
(2)、 命令模式(CommandPattern);
(3)、 解释器模式(InterpreterPattern);
(4)、 迭代器模式(IteratorPattern);
(5)、 中介者模式(MediatorPattern);
(6)、 备忘录模式(MementoPattern);
(7)、 观察者模式(ObserverPattern);
(8)、 状态模式(StatePattern);
(9)、 空对象模式(NullObjectPattern);
(10)、 策略模式(StrategyPattern);
(11)、 模板模式(TemplatePattern);
(12)、 访问者模式(VisitorPattern);
4、 J2EE模式;
主要用于解决在企业级应用开发中的特定问题。
包括:
(1)、 MVC模式(MVCPattern);
(2)、 业务代表模式(BusinessDelegatePattern);
(3)、 组合实体模式(CompositeEntityPattern);
(4)、 数据访问对象模式(DataAccessObjectPattern);
(5)、 前端控制器模式(FrontControllerPattern);
(6)、 拦截过滤器模式(InterceptingFilterPattern);
(7)、 服务定位器模式(ServiceLocatorPattern);
(8)、 传输对象模式(TransferObjectPattern);

三、设计原则

SOLID原则:(5条最核心原则):
1、单一职责原则 (Single Responsibility Principle, SRP)
一个类应该只有一个引起变化的原因。
理解:这意味着一个类应该只有一个职责,当职责变化时,只需修改这个类。这有助于保持类的内聚性,减少类之间的耦合。
2、开放封闭原则 (Open-Closed Principle, OCP)
软件实体(类、模块、函数等)应该是可扩展的,但是不可修改的。
理解:这意味着当需求变化时,我们应该通过添加新的代码来满足这些变化,而不是修改现有的代码。这有助于保持系统的稳定性和可维护性。
3、里氏替换原则 (Liskov Substitution Principle, LSP)
子类型必须能够替换它们的基类型。
理解:这意味着派生类(子类)必须能够无差别地替换其基类(父类),并且程序的行为不会发生变化。这有助于确保代码的正确性和可维护性。
4、接口隔离原则 (Interface Segregation Principle, ISP)
客户端不应该被强制依赖于它们不使用的接口。
理解:这意味着一个类对另一个类的依赖应该是最小的,即一个接口应该小而完备,只包含客户端需要的方法。这有助于减少类之间的耦合,提高系统的可维护性和灵活性。
5、依赖倒置原则 (Dependency Inversion Principle, DIP)
高层模块不应该依赖于低层模块,它们都应该依赖于抽象。
抽象不应该依赖于细节,细节应该依赖于抽象。
理解:这意味着我们应该依赖于抽象(接口或抽象类),而不是具体的实现。这有助于减少类之间的耦合,提高系统的可测试性和可扩展性。

其他5条核心原则:
6、迪米特法则(最少知道原则):一个对象应该对其他对象保持最少的了解。也就是说,一个类应该尽量减少与其他类的耦合度,只与它直接相关的类进行交互。
7、合成复用原则:尽量使用合成/聚合的方式,而不是使用继承来实现代码的复用。继承虽然可以实现代码的复用,但也可能导致类的层次结构过于复杂,破坏封装性。通过合成,可以将已有的类组合成新的类,达到复用的目的,同时保持类的简单和清晰。
8、包内原则:类之间的依赖关系应该尽量减少,尽量限制在包(package)内部。这样可以降低类之间的耦合度,提高系统的可维护性和可扩展性。
9、无环依赖原则:系统中的依赖关系应该形成一个无环的图。也就是说,不应该存在循环依赖的情况,因为循环依赖可能导致代码难以理解和维护。
10、稳定抽象原则:抽象应该比细节具有更强的稳定性。这意味着在设计系统时,应该优先考虑抽象的设计,而不是过早地陷入具体的实现细节中。

学海无涯苦作舟!!!文章来源地址https://www.toymoban.com/news/detail-861551.html

到了这里,关于Java设计模式_概述(设计模式类型和基本原则)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 23种设计模式概述

    1. 提高代码质量和可维护性 :设计模式是经过验证的解决方案,有助于解决常见的设计问题。使用设计模式可以减少代码冗余,增强代码的可读性和可维护性,并提高代码的可靠性。 2. 提升开发效率 :使用设计模式可以加速开发过程,因为设计模式提供了一套经过实践检验

    2024年01月24日
    浏览(34)
  • 【设计模式】二、UML 类图概述

    UML类图:类(对象)本身的组成和类(对象)之间的各种静态关系 依赖、泛化(继承)、实现、关联、聚合与组合 类中用到了对方,那么他们之间就存在依赖关系 类中用到了对方 如果是类的成员属性 如果是方法的返回类型 是方法接收的参数类型 方法中使用到 泛化关系实际上就

    2024年02月09日
    浏览(39)
  • 【深入理解 ByteBuf 之二】对象池设计模式概述

    对象池设计模式并不在经典的 23 种设计模式之中,先说我认为实际上设计模式,这四个词听着唬人,其实本质上就是一种设计的想法思路罢了,然后把经常会用到的一些思路整理出来就成了经典的设计模式思路,重点其实在于运用。 对象池原理 对象池是一种设计模式,旨在

    2024年02月02日
    浏览(36)
  • 设计模式和七大原则概述及单一职责原则详解

    设计模式的目的 编写软件过程中,程序员面临着来自,耦合性,内聚性以及可维护性,扩展性,重用性等方面的挑战。设计模式是为了让程序,具有更好的 1.代码重用性(相同代码,不用重复编写) 2.可读性(编程规范性,便于其他程序员的阅读和理解) 3.可扩展性(当需要增加新

    2024年02月12日
    浏览(42)
  • 设计模式的艺术P1基础—第1章 概述

    刘伟,2020 概述:4部分,26章。 P1:基础(1-2章) P2:创建型设计模式(创建艺术,3-8章) P3:结构型设计模式(组合艺术,9-15章) P4:行为型设计模式(交互艺术,16-26章) 设计模式是面向对象软件开发的入门功夫。 设计面向对象软件比较困难,而设计可复用的面向对象软件就

    2024年01月16日
    浏览(31)
  • 《移动互联网技术》第九章 感知与多媒体: 了解质感设计的基本原则和设计方法

    🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 🌊 《IDEA开发秘籍》学会IDEA常用操作,工作效率翻倍~💐 🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬

    2024年02月11日
    浏览(46)
  • 设计模式的艺术P1基础—2.1 uml概述

    设计模式的艺术P1基础—2.1 uml概述 设计模式的艺术P1基础—第2章 UML类图与面向对象设计原则 UML类图可用于描述每一个设计模式的结构以及对模式实例进行说明,而模式结构又是设计模式解法的核心组成部分。学一个设计模式,如果不能绘制和理解其结构图,基本上等于没学

    2024年02月02日
    浏览(34)
  • 《语音识别模式、算法设计与实践》——第一章 语音识别概述

    本专栏仅为本人学习研读体会分享,以及实际完成的测试代码。更加详细内容详见该书。 定义: 语音识别是让机器具备自动接收和分析人类的语音,并最终输出对应文本的过程。 目标: 将输入语音转化为文字的输出                  目标实现条件: 提前规定好该系

    2024年04月12日
    浏览(47)
  • 【一起学Rust | 设计模式】新类型模式

    新的类型模式提供封装以及保证在编译时提供正确类型的值。新类型模式有多种用途和好处,比如可以处理不同的crate中的结构体和特质的关系。本期我们将一起探讨一下Rust设计模式中的新类型模式。 本期内容是学习Rust设计模式笔记 如果在某些情况下,我们希望一个类型的

    2023年04月08日
    浏览(37)
  • 【C++设计模式】用简单工厂模式实现按汽车重量输出汽车类型

    2023年8月24日,周四凌晨  

    2024年02月11日
    浏览(51)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包