21xrx.com
2025-03-31 04:47:03 Monday
文章检索 我的文章 写文章
Java设计模式-刘伟的答案
2023-06-15 10:06:35 深夜i     6     0

设计模式是软件开发中常用的一种技术,通过对重复出现的问题进行抽象和总结,以达到代码复用、可读性和可维护性等目的。Java作为一门面向对象的语言,设计模式在Java中有着广泛的应用。本文将介绍一些Java常用的设计模式及其实现方式,同时也提供刘伟的答案供参考。

1. 工厂模式

工厂模式是一种创建型模式,它通过定义一个接口来创建对象,但是并不决定该对象的具体类是哪一个。Java中的工厂模式通常分为简单工厂模式、工厂方法模式和抽象工厂模式。下面是一个简单工厂模式的案例:

interface Animal {
  void sayHello();
}
class Dog implements Animal {
  @Override
  public void sayHello() {
    System.out.println("汪汪汪");
  }
}
class Cat implements Animal {
  @Override
  public void sayHello() {
    System.out.println("喵喵喵");
  }
}
class AnimalFactory {
  public static Animal getAnimal(String type) {
    switch (type) {
      case "dog":
        return new Dog();
      case "cat":
        return new Cat();
      default:
        throw new IllegalArgumentException("Type not supported!");
    }
  }
}
public class FactoryTest {
  public static void main(String[] args) {
    Animal animal1 = AnimalFactory.getAnimal("dog");
    Animal animal2 = AnimalFactory.getAnimal("cat");
    animal1.sayHello();
    animal2.sayHello();
  }
}

2. 单例模式

单例模式是一种创建型模式,它确保某个类只有一个实例,而且提供一个全局访问点。在Java中,实现单例模式的方式通常有饿汉式和懒汉式。下面是一个懒汉式的案例:

class Singleton {
  private static Singleton instance;
  private Singleton() {}
  public static synchronized Singleton getInstance() {
    if (instance == null) {
      instance = new Singleton();
    }
    return instance;
  }
}
public class SingletonTest {
  public static void main(String[] args) {
    Singleton s1 = Singleton.getInstance();
    Singleton s2 = Singleton.getInstance();
    System.out.println(s1 == s2);
  }
}

3. 观察者模式

观察者模式是一种行为型模式,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象,当主题对象发生变化时,它的所有依赖者(观察者)都会收到通知并进行更新。在Java中,常用的观察者模式实现方式是Java自带的Observer和Observable类。下面是一个案例:

import java.util.Observable;
class MyObservable extends Observable {
  public void sendMessage(String message) {
    setChanged();
    notifyObservers(message);
  }
}
class MyObserver implements java.util.Observer {
  private String name;
  MyObserver(String name)
    this.name = name;
  
  @Override
  public void update(Observable o, Object arg) {
    System.out.println(name + " received message: " + arg);
  }
}
public class ObserverTest {
  public static void main(String[] args) {
    MyObservable observable = new MyObservable();
    MyObserver observer1 = new MyObserver("Observer1");
    MyObserver observer2 = new MyObserver("Observer2");
    observable.addObserver(observer1);
    observable.addObserver(observer2);
    observable.sendMessage("Hello World!");
  }
}

关键词:

1. Java设计模式

2. 工厂模式

3. 单例模式

4. 观察者模式

5. 刘伟答案

  
  

评论区