面向对象六大设计原则

开闭原则(Open Closed Principle)

  • 核心思想是:对扩展开放,对修改关闭
  • 也就是说,对已经使用的类的改动通过增加代码进行的,而不是修改现有代码

单一职责原则(Single Responsiblity Principle)

  • 其实就是开发人员经常说的”高内聚,低耦合

  • 也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个。

  • 在设计模式中,所有的设计模式都遵循这一原则

里式替换原则(Liskov Substitution Principle)

  • 核心思想:在任何父类出现的地方可以用它的子类来替代

  • 也就是说,同一个继承体系中的对象应该有共同的行为特征

依赖倒转原则(Dependency Inversion Principle)

  • 核心思想:要依赖于抽象和接口,不要依赖于具体实现

  • 其实就是说:在应用程序中,所有的类如果使用或依赖于其他的类,则应该依赖这些其他类的抽象类或者接口,而不是直接依赖这些其他类的具体类。

  • 为了实现这一原则,就要求我们在编程的时候针对抽象类或者接口编程,而不是针对具体实现编程。

接口分离原则(Interface Segregation Principle)

  • 核心思想:不应该强迫程序依赖它们不需要使用的方法。

  • 其实就是说:一个接口不需要提供太多的行为一个接口应该只提供一种对外的功能,不应该把所有的操作都封装到一个接口中

迪米特原则(最少认知原则,Principle of Least Knowledge)

  • 核心思想:一个对象应当对其他对象尽可能少的了解

  • 其实就是说:降低各个对象之间的耦合,提高系统的可维护性。在模块之间应该只通过接口编程,而不理会模块的内部工作原理,它可以使各个模块耦合度降到最低,促进软件的复用。

一。什么是设计模式:
针对开发过程中常见问题提出通用解决方案 二。学习设计模式好处 1.便于查看高级框架源码
2.增加解决问题的能力 三。适配器设计模式: 1.解决何种问题: 解决接口与接口实现类之间继承矛盾问题 2.适配器设计模式特征:
1)使用抽象类分离了接口与【接口实现】
2)抽象类分摊接口中需要常用的方法
3)使得【接口实现类】像逛超市一样,可以随意选择
接口中的方法来实现 3.参考Servlet规范中GenericServlet
四 模板设计模式:
1.解决何种问题: 让父类控制子类方法的调用顺序 2.模板设计模式好处: 开发人员在开发时,只需要考虑方法的实现。
不需要考虑方法在何种情况下被调用
五。代理模式:

      1.解决何种问题:将【次要业务】和【主要业务】解耦合

      2.【次要业务】和【主要业务】区分:

            【次要业务】:起到辅助功能,辅助【主要业务】顺利实现。
在项目 【次要业务】往往大量重复出现 【主要业务】:主要任务。 3.【次要业务】对于开发效率影响: 1)加载驱动类。 【次要业务】
2)建立连接通道 【次要业务】
3)建立数据库操作对象 【次要业务】 4)推送sql命令到数据库执行并返回处理结果 [主要业务] 5)销毁con,statement,rs【次要业务】 4.代理模式本质: 行为监听 代理对象 $proxy InvocationHandler <input type="button" onclick="fun1"> 5.代理模式组成: 1) 接口:声明需要被监听行为
2)代理实现类(InvocationHandler): 次要业务 次要业务和主要业务绑定执行
3)代理对象(监听对象) 6.业务: 饭前便后要洗手 【主要业务】:吃饭,便便
【次要业务】:洗手 7.Java代理模式多级代理----MyBatis 螳螂捕蝉,黄雀在后 蝉吃树脂
螳螂吃蝉
黄雀吃螳螂

springboot打包的更多相关文章

  1. springboot 打包

    springboot 打包 先clean 然后 maven package 通过命令java -jar target/GoshenWepPro-0.1.0.jar运行程序

  2. springboot打包不同环境配置与shell脚本部署

    本篇和大家分享的是springboot打包并结合shell脚本命令部署,重点在分享一个shell程序启动工具,希望能便利工作: profiles指定不同环境的配置 maven-assembly-plu ...

  3. SpringBoot打包成war

    关于SpringBoot打成jar包以及jar包如何在Linux持久运行,我在前面已经说过了,所以本次不再赘述. 关于SpringBoot打包成war,其实步骤特别简单,如下图所示(如果是jar,通常 ...

  4. springboot打包去除资源文件,启动时指定配置文件位置,使用log4j2替换默认logback

    springboot打包时,去掉资源文件 <build> <resources> <resource> <directory>src/main/reso ...

  5. springboot打包成war后部署项目出现异常 LifecycleException: Failed to start component

    完整异常:org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].Sta ...

  6. springboot打包成jar包后找不到xml,找不到主类的解决方法

    springboot打包成jar包后找不到xml,找不到主类的解决方法 请首先保证你的项目能正常运行(即不打包的时候运行无误),我们在打包时经常遇到如下问题: springboot打包成jar包后找不 ...

  7. SpringBoot 打包为Docker进行

    可以有两种方式: 1.dockerfile 2.maven docker 第一种方式:通过dockerfile打包Docker镜像 1.将dockerfile和 springboot打包的jar文件放 ...

  8. 聚合maven+spring-boot打包可执行jar

    整整搞了一天,终于解决这个问题了.这里是四个module,module之间存在依赖,打包两个可执行jar,看下最终效果吧 聚合maven+spring-boot的搭建很简单,和普通的聚合maven没有 ...

  9. 关于springboot 打包问题 jar包和 war包

    起因:项目开发完成   需要打包部署了  发现自己不会打包 那么开始网上学习打包? 那么怎么来打包那? 我们以前没有采用springboot 时候我们都是直接将项目打成war包形式  然后放到tomc ...

  10. Springboot打包执行源码解析

    一.打包 Springboot打包的时候,需要配置一个maven插件[spring-boot-maven-plugin] <build> <plugins> <plugi ...

随机推荐

  1. NET设计模式 第二部分 结构性模式(13):代理模式(Proxy Pattern)

    代理模式(Proxy Pattern) ——.NET设计模式系列之十四 Terrylee,2006年5月 摘要:在软件系统中,有些对象有时候由于跨越网络或者其他的障碍,而不能够或者不想直接访问另一个对 ...

  2. 【转】基于keras 的神经网络股价预测模型

    from matplotlib.dates import DateFormatter, WeekdayLocator, DayLocator, MONDAY,YEARLY from matplotli ...

  3. Eclipse提交代码到Spark集群上运行

    Spark集群master节点:      192.168.168.200 Eclipse运行windows主机: 192.168.168.100 场景: 为了测试在Eclipse上开发的代码在Spa ...

  4. 单机RedHat6.5+JDK1.8+Hadoop2.7.3+Spark2.1.1+zookeeper3.4.6+kafka2.11+flume1.6环境搭建步骤

    1.RHEL 6.5系统安装配置图解教程(rhel-server-6.5) 2.在Linux下安装JDK图文解析 3.RedHat6.5上安装Hadoop单机 4.RedHat6.5安装Spark单机 ...

  5. 基于spring的placeholder思路处理配置信息敏感信息加密解密的实践

    基于Spring的placeholder处理思路,实现系统配置信息敏感信息的加密解密处理. 我们的处理方案,是基于类org.springframework.beans.factory.config.P ...

  6. 安装tensorflow,那叫一个坑啊

    最近,项目团队需要研究并应用AI的技术,在具体的产品实施环节中使用.之前的几个项目,是委托武汉大学给做的,基于keras框架,实现了一些图像识别的项目. 这不,上方希望自己能够掌握一些常用且成熟的AI ...

  7. mysql57免安装版配置

    1,下载mysql5.7压缩文件[具体到官网下载就行了] 2,解压并把mysql5.7放到c盘根目录下 3,进入mysql5.7主目录修改my-default.ini 重命名为:my.ini [如果没 ...

  8. Device Identifier and Device DNA初识

    Device Identifier and Device DNA初识 信息来源 怎么样去用这个DNA:

  9. msp430学习笔记-DAC12

    MSP430F169 的DAC12 模块有2 个DAC 通道,并且可以用DAC12GRP控制位将多个DAC12通道组合起来,实现同步更新,硬件还能确保同步更新独立于任何中断或者NMI事件. DAC12 ...

  10. SoapUI 5.2.1 调试工具

    SoapUI 5.2.1 调试工具 1.打开soapUI. 2.新建一个项目,实例如下: 点击ok后在soapUI界面左侧会显示出此项目,如图: 2.创建测试用例: a.新建用例组,选择此项目右键,新 ...