Java23种设计模式之概念篇
工厂模式
- 概述
- 一、面向对象三大基本特性
- 1、封装
- 2、继承
- 3、多态
- 二、面向对象设计(OOD)七大原则
- 1、开闭原则
- 2、里氏替换原则
- 3、依赖倒置原则
- 4、单一职责原则
- 5、接口隔离原则
- 6、迪米特法则/最少知道原则
- 7、合成/聚合复用原则
- 三、计模式分为三大类
- 1、创建型模式
- 2、结构型模式
- 3、行为型模式
- 总结
概述
设计模式的本质是:面向对象设计原则的实际运用,是对类的封装性、继承性、多态性以及类的关联关系和组合关系的充分理解。
正确使用优点:
- 可以提高程序员的思维能力、编程能力和设计能力
- 使程序设计更加标准化、代码编制更加工程化、使软件开发效率大大提高、从而缩短软件的开发生命周期
- 使设计的代码可重用性高、可读性强、可靠性高、灵活性好、可维护性高
一、面向对象三大基本特性
面向对象程序设计(Object OrientedProgramming)作为一种新方法,其本质是以建立模型体现出来的抽象思维过程和面向对象的方法。模型是用来反映现实世界中事物特征的。任何一个模型都不可能反映客观事物的一切具体特征,只能对事物特征和变化规律的一种抽象,且在它所涉及的范围内更普遍、更集中、更深刻地描述客体的特征。通过建立模型而达到的抽象是人们对客体认识的深化。
1、封装
封装,也就是把客观事物封装成抽象的类,并且类可以把自己的属性和方法只让可信的类操作,对不可信的类进行信息隐藏。
2、继承
继承是指这样一种能力,它可以使用现有的类的所有功能,并在无需重新编写原来类的情况下对这些功能进行扩展。
3、多态
多态指一个类实例的相同方法在不同情形有不同的表现形式。具体来说就是不同实现类对公共接口有不同的实现方式,但这些操作可以通过相同的方式(公共接口)予以调用。
二、面向对象设计(OOD)七大原则
面向对象设计(OOD)有七大原则,它们互相补充:
1、开闭原则
对扩展开放、对修改关闭。
2、里氏替换原则
继承必须确保超类所拥有的性质在子类中任然成立,即子类必须能够替换其父类,否则不应当设计为其子类
3、依赖倒置原则
要面向接口编程、不要面向实现编程
4、单一职责原则
控制类的粒度大小、将对象解耦、提高其内聚性
5、接口隔离原则
要为各个类提供他们需要的专用接口
6、迪米特法则/最少知道原则
一个对象就尽可能少的去了解其它对象,即是只与你的朋友交谈,不与陌生人交谈
7、合成/聚合复用原则
尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现
三、计模式分为三大类
1、创建型模式
共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。
2、结构型模式
共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。
3、行为型模式
共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。
推荐一个学习网站:[https://refactoringguru.cn/](https://refactoringguru.cn/)
这是一个国外的网站,但是已经翻译成了中文,能够帮助我们快速地掌握设计模式,真的很用心。
总结
设计模式是针对软件设计中常见问题的工具箱, 其中的工具就是各种经过实践验证的解决方案。 即使你从未遇到过这些问题,了解模式仍然非常有用, 因为它能指导你如何使用面向对象的设计原则来解决各种问题。
Java23种设计模式之概念篇相关推荐
- JAVA23种设计模式学习,源码+案例分析+类图讲解
本文对JAVA中23种设计模式进行了简单的讲解,幷加以实际案例进行辅助理解,每种模式都会举例说明,幷将源码开源至gitee和githbu上.JAVA目录下为源码,resources目录下的UML文件夹 ...
- java-23种设计模式详解(一)
2019独角兽企业重金招聘Python工程师标准>>> 设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反 ...
- 走穿java23种设计模式-15责任链模式详解
走穿java23种设计模式-15责任链模式详解 责任链模式是一种常见的行为模式. 一.责任链模式的现实场景 习伟过生日邀请了很多朋友到KTV一起庆祝,为了增加欢乐的气氛,习伟建议大家一起玩击鼓传花的游 ...
- 走穿java23种设计模式--18中介者模式详解
走穿java23种设计模式–18中介者模式详解 中介者模式也称调停者模式,是一种比较简单的模式. 一.中介者模式的现实场景 蔡良因为上次表白时对方只看重他的物质方面,所以他对女朋友这个问题有点失望.因 ...
- JAVA23种设计模式(2)-结构型模式7种
JAVA23种设计模式(2)-结构型模式7种 把类结合在一起形成更大的结构 适配器模式(adapter) 一句话:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容 这是平时比较常见的一种模 ...
- Java23种设计模式之单例模式的五种实现方式、反射破解单例模式、不能破解枚举单例模式详解
源码链接(Gitee码云):https://gitee.com/oldou/javadesignpatterns 这里有我整理好的Java23种设计模式的源码以及博客教程,博客教程中介绍了Java23 ...
- 学习java23种设计模式自我总结
首先先做个广告,以前看过@maowang 这位大神转的Java开发中的23种设计模式详解(转) ,但是看了之后都忘差不多了, 所以,开个帖子边学习边自我总结(纯手敲).一直以来像这种需要长久的运动,真 ...
- java23种设计模式(追妹妹版)
设计模式做为程序员的"内功心法",越来越受到重视.这是一篇通俗版23种设计模式,用实际生活做比喻,让你很快就能理解其中的深意. 1.FACTORY―追MM少不了请吃饭了,麦当劳的鸡 ...
- 深入浅出Java23种设计模式(一)
文章目录 关于设计模式 六大设计原则 开闭原则(Open Close Principle) 里氏代换原则(Liskov Substitution Principle) 依赖倒转原则(Dependenc ...
最新文章
- 1.lamp网站构建
- Facebook最新研究:配合AR眼镜使用的腕带,可将神经信号转化为动作
- [图示]话剧《被结婚时代》将剩女分4级
- Applet 大文件上传
- 未排序数组中累加和为给定值的最长子数组系列问题
- loss下降auc下降_梯度下降算法 线性回归拟合(附Python/Matlab/Julia源代码)
- python做马尔科夫模型预测法_用Python实现马尔可夫链蒙特卡罗
- dbc文件c语言解析标准,DBC文件解析CAN信息
- 轻松学DDD之二:如何高效消化知识
- 程序员如何转型项目经理?
- CTF—攻防练习之HTTP—命令执行漏洞
- 数学建模——层次分析法(Matlab)【评价类问题】
- idea配置Translation插件为有道翻译引擎
- Ubuntu+OpenCV学习汉字点阵,图片打印汉字
- [TF进阶] 卷积神经网络
- UE4编辑器界面语言切换
- 什么是 CI/CD?
- 里去频闪的插件叫什么_冬天去海南,你才会发现什么叫“不枉此生”!
- 09.计算机网络之p2p应用
- java求几何周长面积_java求几何图形面积