java详细设计模式有代码

文章目录

  • 设计模式
    • 1.七大原则
      • 1.单一职责原则
      • 2.接口隔离原则
      • 3.依赖倒转原则
        • 代码实现
          • 有问题代码
          • 实现依赖倒转原则以后的代码
      • 4.里氏替换原则
      • 5.开闭原则
      • 6.迪米特法原则
      • **7.合成复用原则**
    • 设计模式:
      • 1.单例模式:
        • 饿汉模式:
        • 懒汉模式(双重if判断):
        • 懒汉模式静态内部类:
        • 枚举单例模式:
      • 2.策略模式(把相同行为的不同实现进行封装)
      • 3. 享元模式(Flyweight pattern)
      • 4.代理模式
        • 静态代理
        • 动态代理(JDK代理)
        • cglib代理
      • 5.模板方法模式
      • 6.观察者模式
      • 7.工厂模式
        • 7.1代码
        • 7.2抽象出来的三个抽象类
        • 7.3 把三个抽象类放到一个抽象类中封装
        • 7.4 每个产品增加自己产品抽象类,继承(extends)抽象父类
          • 7.41现代世界的人
          • 7.42魔法世界的人
        • 7.43客户端进行调用,修改MagicStickFactory这个产品就可以进行不同的调用

设计模式

1.七大原则

1.单一职责原则

(每个类或者每个方法只需要实现一个职责,不需要实现很多其他的功能。)在类中的方法足够多需要在类的层面遵守单一职责原则

方法遵循单一职责代码实现:

2.接口隔离原则

A通过接口B依赖于C(只要实现接口B的1,2,3方法),D通过接口B依赖于F(只需要 实现接口B的1,4,5方法),这样A就得实现所有的B接口的方法,D就得实现所有的B接口方法,导致浪费,且相关性强,所以得遵循接口最小原则,把 方法1 放在一个接口Interface1, 方法 2,3放在一个接口Interface2 ,方法4,5放在一个接口Interface3.

3.依赖倒转原则

  1. 高层模块不应该依赖低层模块,二者应该依赖其抽象(接口和抽象类)
  2. 抽象不应该依赖细节,细节(一般是java的实现类)应该依赖抽象
  3. 、依赖倒转的中心思想是面向接口编程
  4. 设计理念:以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。
  5. java里面接口或者抽象类的目的是设计好规范(不去实现),实现一定是由那个实现类去操作。
  6. 继承时遵循里氏替换原则

代码实现

有问题代码
实现依赖倒转原则以后的代码

实现接口间依赖传递的三种方式:

  1. 通过接口传递实现依赖
  2. 通过构造方法依赖传递
  3. 通过setter方法依赖传递

代码:

4.里氏替换原则

5.开闭原则

6.迪米特法原则

7.合成复用原则

经典面试题目/p>

  1. 在项目的实际开发中哪里使用了ocp原则(工厂模式中有用)

  2. spring中应用了哪些设计模式,原型模式在哪里 用到/p>

  3. 什么是解释器设计模式出它的UML类图,分析各个角色是什么/p>

  4. spring框架中哪里使用到了解释器设计模式做源码级别分析

  5. 单例模式一共有几种实现方式代码实现,并说明各个的优点缺点。

单列设计模式有几种实现方式/p>

  1. 饿汉式 两种

  2. 懒汉式 三种

  3. 双重检查

  4. 静态内部类

    设计模式概念:(design pattern)是对在软件设计普遍存在(反复出现)的各种问题,提出 的一种解决方案。

使用设计模式可以使用项目具有:可扩展性,维护性,可靠性(新增一个功能对原来的功能影响不大),可复用性,效率提高等等

设计模式:

1.单例模式:

饿汉模式:

懒汉模式(双重if判断):

package com.monkey.sigleton;public class LazyModeImprove {    private static LazyModeImprove Instance;    private LazyModeImprove(){};    private static LazyModeImprove getInstance(){

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年10月8日
下一篇 2022年10月8日

相关推荐