欢迎访问宙启技术站
智能推送

Java设计模式的介绍

发布时间:2023-05-18 02:39:44

Java设计模式是在软件开发中常用的一种解决问题的方式,也是提高代码可维护性、可读性和可扩展性的有效途径。Java设计模式不是框架,而是关于软件设计的一系列惯用解决方案,包含23种设计模式。

Java设计模式的分类:

1.创建型模式: 主要是提供了在创建对象时的一些方法。

常见的创建型模式有:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式等。

2.结构型模式: 联系起来形成更大的结构。

常见的结构型模式有:适配器模式、桥接模式、装饰模式、组合模式、享元模式、代理模式。

3.行为型模式: 它们修改或控制应用程序中的流程。

常见的行为型模式有:责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式等。

举例:

1.单例模式

在程序运行过程中,有些类需要全局只有一个对象,比如配置文件的读取类。这时候就可以使用单例模式,保证一个类只有一个实例,并提供一个全局访问点。

public class Singleton {

   private static Singleton instance = null;

   private Singleton() {

      // 私有化构造方法

   }

   public static Singleton getInstance() {

      if (instance == null) {

         synchronized(Singleton.class){

            if(instance == null){

               instance = new Singleton();

            }

         }

      }

      return instance;

   }

}

2.工厂模式

工厂模式,通过工厂方法来完成对象的创建,将对象的创建与使用分离开来,达到解耦的效果。

public interface Shape {

   void draw();

}

public class Circle implements Shape {

   @Override

   public void draw() {

      System.out.println("画了一个圆。");

   }

}

public class Square implements Shape {

   @Override

   public void draw() {

      System.out.println("画了一个正方形。");

   }

}

public class ShapeFactory {

   public Shape getShape(String shapeType){

      if (shapeType == null){

         return null;

      }

      if (shapeType.equalsIgnoreCase("CIRCLE")){

         return new Circle();

      } else if (shapeType.equalsIgnoreCase("SQUARE")){

         return new Square();

      }

      return null;

   }

}

public class Test {

   public static void main(String[] args) {

      ShapeFactory shapeFactory = new ShapeFactory(); // 创建工厂对象实例

      Shape shape1 = shapeFactory.getShape("CIRCLE"); // 通过工厂获取 Circle 对象

      shape1.draw(); // 调用 Circle 对象的 draw 方法

      Shape shape2 = shapeFactory.getShape("SQUARE"); // 通过工厂获取 Square 对象

      shape2.draw(); // 调用 Square 对象的 draw 方法

   }

}

Java设计模式具有很强的通用性和可重用性,可以用于不同的需求场景,用来提高软件开发的质量和效率。学习好了这些设计模式,可以让程序员的编码更加规范、灵活和高效。