21xrx.com
2024-11-10 00:44:22 Sunday
登录
文章检索 我的文章 写文章
Java设计模式-刘伟的答案
2023-06-15 10:06:35 深夜i     --     --

设计模式是软件开发中常用的一种技术,通过对重复出现的问题进行抽象和总结,以达到代码复用、可读性和可维护性等目的。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. 刘伟答案

  
  

评论区

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