工厂模式

  • 概述
  • 一、面向对象三大基本特性
    • 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. python【力扣LeetCode算法题库】面试题 08.11- 硬币
  2. Leetcode-322. 零钱兑换个人答案与官方答案的一个对比(以及对测试用例的思考)
  3. 一个架构的演化2--用ESB集成
  4. 全国小学四则运算1.0
  5. ::after和::before
  6. mysql实习报告总结_MySQL上机实习报告(一)
  7. 马云:创业成功者没有固定模式
  8. 压缩JS方法:uglifyjs
  9. AcWing 785. 快速排序
  10. Hybrid和Tagged Untagged理解
  11. 华为HCNA认证---简介及资源
  12. Linux如何检查是否支持SNI,WDCP下的纯Nginx支持多域名ssl证书(TLS SNI support disabled)解决方案...
  13. Laravel 5.7用户注册邮箱激活的功能演示
  14. 锤子手机关闭位置服务器,技巧:锤子手机的4个隐藏小技巧 处处有情怀
  15. 【常识】常见外国计量单位
  16. 详细解读:大数据分析的学习
  17. 如何正确对用户密码进行加密?转自https://blog.csdn.net/zhouyan8603/article/details/80473083...
  18. 一阶的RC高低通电路和微积分电路有什么区别
  19. python大神的成长之路普通话三分钟_三分钟普通话说话30篇-我的成长之路 - 希赛网...
  20. plc做45度的正弦值

热门文章

  1. Food Buying(CF-1296B)
  2. 组合数学 —— 组合数取模 —— 卢卡斯定理与扩展卢卡斯定理
  3. A*B Problem(洛谷-P1303)
  4. 小鱼会有危险吗(洛谷-P1426)
  5. 信息学奥赛一本通C++语言——1037:计算2的幂
  6. python中什么叫函数_Python 基础起步 (十) 什么叫函数?
  7. beyond compare类似软件_你用过最好用的截图软件是哪一款
  8. c语言sort函数_C语言经典面试题目及答案详解(二)
  9. springboot rabbitlistener注解_一文带你SpringBoot+RabbitMQ方式收发消息
  10. python语言的特点有没有面向过程_Python 入门基础之面向对象过程-面向过程概述...