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 ...
最新文章
- python【力扣LeetCode算法题库】面试题 08.11- 硬币
- Leetcode-322. 零钱兑换个人答案与官方答案的一个对比(以及对测试用例的思考)
- 一个架构的演化2--用ESB集成
- 全国小学四则运算1.0
- ::after和::before
- mysql实习报告总结_MySQL上机实习报告(一)
- 马云:创业成功者没有固定模式
- 压缩JS方法:uglifyjs
- AcWing 785. 快速排序
- Hybrid和Tagged Untagged理解
- 华为HCNA认证---简介及资源
- Linux如何检查是否支持SNI,WDCP下的纯Nginx支持多域名ssl证书(TLS SNI support disabled)解决方案...
- Laravel 5.7用户注册邮箱激活的功能演示
- 锤子手机关闭位置服务器,技巧:锤子手机的4个隐藏小技巧 处处有情怀
- 【常识】常见外国计量单位
- 详细解读:大数据分析的学习
- 如何正确对用户密码进行加密?转自https://blog.csdn.net/zhouyan8603/article/details/80473083...
- 一阶的RC高低通电路和微积分电路有什么区别
- python大神的成长之路普通话三分钟_三分钟普通话说话30篇-我的成长之路 - 希赛网...
- plc做45度的正弦值
热门文章
- Food Buying(CF-1296B)
- 组合数学 —— 组合数取模 —— 卢卡斯定理与扩展卢卡斯定理
- A*B Problem(洛谷-P1303)
- 小鱼会有危险吗(洛谷-P1426)
- 信息学奥赛一本通C++语言——1037:计算2的幂
- python中什么叫函数_Python 基础起步 (十) 什么叫函数?
- beyond compare类似软件_你用过最好用的截图软件是哪一款
- c语言sort函数_C语言经典面试题目及答案详解(二)
- springboot rabbitlistener注解_一文带你SpringBoot+RabbitMQ方式收发消息
- python语言的特点有没有面向过程_Python 入门基础之面向对象过程-面向过程概述...