工厂模式

  • 概述
  • 一、面向对象三大基本特性
    • 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种设计模式之概念篇相关推荐

  1. JAVA23种设计模式学习,源码+案例分析+类图讲解

    本文对JAVA中23种设计模式进行了简单的讲解,幷加以实际案例进行辅助理解,每种模式都会举例说明,幷将源码开源至gitee和githbu上.JAVA目录下为源码,resources目录下的UML文件夹 ...

  2. java-23种设计模式详解(一)

    2019独角兽企业重金招聘Python工程师标准>>>  设计模式(Design Patterns) --可复用面向对象软件的基础 设计模式(Design pattern)是一套被反 ...

  3. 走穿java23种设计模式-15责任链模式详解

    走穿java23种设计模式-15责任链模式详解 责任链模式是一种常见的行为模式. 一.责任链模式的现实场景 习伟过生日邀请了很多朋友到KTV一起庆祝,为了增加欢乐的气氛,习伟建议大家一起玩击鼓传花的游 ...

  4. 走穿java23种设计模式--18中介者模式详解

    走穿java23种设计模式–18中介者模式详解 中介者模式也称调停者模式,是一种比较简单的模式. 一.中介者模式的现实场景 蔡良因为上次表白时对方只看重他的物质方面,所以他对女朋友这个问题有点失望.因 ...

  5. JAVA23种设计模式(2)-结构型模式7种

    JAVA23种设计模式(2)-结构型模式7种 把类结合在一起形成更大的结构 适配器模式(adapter) 一句话:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容 这是平时比较常见的一种模 ...

  6. Java23种设计模式之单例模式的五种实现方式、反射破解单例模式、不能破解枚举单例模式详解

    源码链接(Gitee码云):https://gitee.com/oldou/javadesignpatterns 这里有我整理好的Java23种设计模式的源码以及博客教程,博客教程中介绍了Java23 ...

  7. 学习java23种设计模式自我总结

    首先先做个广告,以前看过@maowang 这位大神转的Java开发中的23种设计模式详解(转) ,但是看了之后都忘差不多了, 所以,开个帖子边学习边自我总结(纯手敲).一直以来像这种需要长久的运动,真 ...

  8. java23种设计模式(追妹妹版)

    设计模式做为程序员的"内功心法",越来越受到重视.这是一篇通俗版23种设计模式,用实际生活做比喻,让你很快就能理解其中的深意. 1.FACTORY―追MM少不了请吃饭了,麦当劳的鸡 ...

  9. 深入浅出Java23种设计模式(一)

    文章目录 关于设计模式 六大设计原则 开闭原则(Open Close Principle) 里氏代换原则(Liskov Substitution Principle) 依赖倒转原则(Dependenc ...

最新文章

  1. 1.lamp网站构建
  2. Facebook最新研究:配合AR眼镜使用的腕带,可将神经信号转化为动作
  3. [图示]话剧《被结婚时代》将剩女分4级
  4. Applet 大文件上传
  5. 未排序数组中累加和为给定值的最长子数组系列问题
  6. loss下降auc下降_梯度下降算法 线性回归拟合(附Python/Matlab/Julia源代码)
  7. python做马尔科夫模型预测法_用Python实现马尔可夫链蒙特卡罗
  8. dbc文件c语言解析标准,DBC文件解析CAN信息
  9. 轻松学DDD之二:如何高效消化知识
  10. 程序员如何转型项目经理?
  11. CTF—攻防练习之HTTP—命令执行漏洞
  12. 数学建模——层次分析法(Matlab)【评价类问题】
  13. idea配置Translation插件为有道翻译引擎
  14. Ubuntu+OpenCV学习汉字点阵,图片打印汉字
  15. [TF进阶] 卷积神经网络
  16. UE4编辑器界面语言切换
  17. 什么是 CI/CD?
  18. 里去频闪的插件叫什么_冬天去海南,你才会发现什么叫“不枉此生”!
  19. 09.计算机网络之p2p应用
  20. java求几何周长面积_java求几何图形面积

热门文章

  1. mysql 中average_mysql – 计算SQL中的移动平均值
  2. 完成css的切图 图片任意,css切图是什么意思
  3. OpenJudge NOI 1.8 25:螺旋加密
  4. 元素(HYSBZ-2460)
  5. 神奇的国度(HYSBZ-1006)
  6. 搜索 —— 启发式搜索 —— A* 算法
  7. 线性结构 —— 前缀和
  8. 表达式括号匹配(信息学奥赛一本通-T1353)
  9. 基础算法 —— 高精度计算 —— 高精度减法
  10. 机器翻译(信息学奥赛一本通-T1401)