面向对象六大设计原则

开闭原则(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. c/c++ int数组初始化/重置为0

    1.int数组其实初始化的时候默认就是全部为0 int a[1000];int a[1000] = {0}; 以上2种写法其实都可以 注意:int a[1000] = {0};这种方法如果想把整形数组 ...

  2. beanshell获取响应结果数据

    http://blog.csdn.net/lluozh2015/article/details/72834014 [Jmeter]BeanShell断言--数据处理 标签: jmeter 2017-0 ...

  3. Request method 'POST' not supported

    总是报错,原来是form表单的锅,赶紧删了.

  4. Centos7安装WPS和截图工具shutter

    centos7安装WPS 1..在wps官网上下载rpm安装包 2..rpm包安装命令 yum install xxx[安装包的名字] 注意:执行此项命令需要root权限 3.安装完成后即可使用 Ce ...

  5. C#中winform使用相对路径读取文件的方法

    http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece763105392230e54f73b6cd0d3027fa3cf1fd579080101 ...

  6. Java 可执行jar的manifest编写

    Eclipse:形式, 选中项目右键 命令行形式: 1.编写Java类 2.命令行指定到项目/src文件夹,编译 3.编写manifest文件 4.目录重新定位到bin/classes编译文件目录下, ...

  7. php 测试 程序执行时间,内存使用情况

    memory_get_usage 可以分析内存占用空间. microtime 函数就可以分析程序执行时间. 上栗子: echo '开始内存:'.memory_get_usage(), ''; $tmp ...

  8. 黄聪:C#如何使用fiddlercoreCapture监控手机APP

    1.去下载Fiddler:https://www.telerik.com/download/fiddler 2.安装Fiddler,按下图所示导出证书,导出后在桌面得到:FiddlerRoot.cer ...

  9. Netty简单的HTTP服务器

    本文转载自:https://www.cnblogs.com/luangeng/p/7875710.html HTTP协议:略 基于Netty的HTTP协议栈可以方便的进行异步非阻塞的HTTP服务器的开 ...

  10. 函数,lambda函数,递归函数,内置函数(map,filter),装饰器

    1. 集合 主要作用: 去重 关系测试, 交集\差集\并集\反向(对称)差集 2. 元组 只读列表,只有count, index 2 个方法 作用:如果一些数据不想被人修改, 可以存成元组,比如身份证 ...