21xrx.com
2024-09-19 08:56:33 Thursday
登录
文章检索 我的文章 写文章
Java设计模式视频教程: 提高Java编程实力
2023-06-15 13:13:33 深夜i     --     --
工厂模式 创建型模式 CarFactory

如果你想在Java编程中取得更好的成果,那么设计模式将会是必须要掌握的技能。设计模式是在软件设计过程中被发现的通用解决方案,可以帮助程序员在处理软件设计中的问题时,更容易地想到可重用的解决方案。

在这篇文章中,我们将向您介绍一些常见的Java设计模式。我们将为您提供一些实用的代码案例,以帮助您更好地理解这些设计模式的实现方式。

1. 工厂模式

工厂模式是一种创建型模式,它允许您创建对象,而不必指定这些对象的确切类型。其基本思想是提供一个工厂类,它负责根据传递给它的信息来实例化对象,并返回这个对象的一个通用的接口。

下面是一个例子,展示了如何使用工厂模式来创建一个汽车类:


interface Car {

 void drive();

}

class ElectricCar implements Car {

 public void drive() {

  System.out.println("正在开电动汽车");

 }

}

class GasCar implements Car {

 public void drive() {

  System.out.println("正在开油动汽车");

 }

}

class CarFactory {

 public Car createCar(String type) {

  if (type.equalsIgnoreCase("electric")) {

   return new ElectricCar();

  } else if (type.equalsIgnoreCase("gas")) {

   return new GasCar();

  } else

   return null;

  

 }

}

public class FactoryPatternExample {

 public static void main(String[] args) {

  CarFactory carFactory = new CarFactory();

  

  Car myCar = carFactory.createCar("electric");

  myCar.drive();

 }

}

在这个例子中,我们定义了一个Car接口,然后我们实现了两个不同类型的汽车-电动汽车和油动汽车。然后,我们创建了一个CarFactory类,该类提供了一个创建Car对象的方法。这个方法根据我们传递给它的“type”参数来决定创建哪一个汽车对象。在我们的main方法中,我们使用createCar方法来获取我们想要的汽车对象。

2. 单例模式

单例模式是一种创建型模式,它确保一个类只有一个实例,并提供了一个全局访问点。

这个例子展示了如何创建一个单例模式的DatabaseConnection类:


public class DatabaseConnection {

 private static DatabaseConnection databaseConnection;

 

 private DatabaseConnection() {}

 

 public static DatabaseConnection getDatabaseConnection() {

  if (databaseConnection == null) {

   databaseConnection = new DatabaseConnection();

  }

  

  return databaseConnection;

 }

}

在这个例子中,我们使用了一个私有静态变量来保存唯一的DatabaseConnection实例。我们定义了一个私有构造函数,这样其他的类就无法创建DatabaseConnection实例。我们定义了一个公共静态方法getDatabaseConnection来获取唯一的DatabaseConnection实例。在getDatabaseConnection方法中,如果databaseConnection静态变量为空,我们就创建一个新的DatabaseConnection实例,否则我们就返回已创建的实例。

关键词:单例模式、创建型模式、唯一实例

3. 观察者模式

观察者模式是一种行为型模式,它定义了一种一对多的依赖关系,这样一个对象的状态改变时,所有相关的依赖对象都会收到通知并自动更新。

以下是一个使用观察者模式的例子,它定义了一个Subject类和一个Observer类:


import java.util.List;

import java.util.ArrayList;

interface Observer {

 void update();

}

class Subject {

 private List observers = new ArrayList<>();

 

 public void attachObserver(Observer observer) {

  observers.add(observer);

 }

 

 public void notifyObservers() {

  for (Observer observer : observers) {

   observer.update();

  }

 }

}

public class ObserverPatternExample {

 public static void main(String[] args) {

  Subject subject = new Subject();

  

  Observer observer1 = () -> System.out.println("Observer 1已经收到了通知!");

  Observer observer2 = () -> System.out.println("Observer 2已经收到了通知!");

  

  subject.attachObserver(observer1);

  subject.attachObserver(observer2);

  

  subject.notifyObservers();

 }

}

在这个例子中,我们定义了一个Subject类,该类管理多个Observer对象。Subject类有两个方法:attachObserver和notifyObservers。attachObserver方法添加一个Observer对象到observers列表中。notifyObservers方法遍历observers列表,并调用每个Observer对象的update方法。

在我们的main方法中,我们创建了两个Observer对象,并将它们添加到Subject对象的observers列表中。我们调用了Subject对象的notifyObservers方法来通知所有的Observer对象。

关键词:观察者模式、行为型模式、Subject对象

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复