21xrx.com
2024-09-20 00:16:57 Friday
登录
文章检索 我的文章 写文章
Java设计模式清华大学课后题答案解析
2023-06-14 16:09:08 深夜i     --     --

Java设计模式是每一个Java开发人员都需要掌握的重要内容。在清华大学的Java开发课程中,学生通常会收到一些关于Java设计模式的课后题。本篇文章将围绕这些问题,由Java专家于卫红为您详细讲解,并提供代码案例。

问题1:请简述单例模式Singleton的使用场景以及实现方式。

单例模式是一种常用的设计模式,在许多场景下都可以使用。例如在多线程环境下,使用单例模式可以确保只有一个实例被创建,无论有多少个线程在使用该实例。其实现方式主要有两种:饿汉式和懒汉式。

以饿汉式为例:


public class Singleton {

  private static Singleton instance = new Singleton();

  private Singleton(){}

  public static Singleton getInstance()

   return instance;

 

}

以懒汉式为例:


public class Singleton {

  private static Singleton instance = null;

  private Singleton(){}

  public static Singleton getInstance(){

   if(instance == null){

     instance = new Singleton();

   }

   return instance;

  }

}

问题2:请简述工厂模式Factory的使用场景以及实现方式。

工厂模式是一种通用的设计模式,它可以用于创建不同的对象,且无需暴露创建逻辑。在实现过程中,一般会定义一个工厂类,在其中定义创建对象的方法。

以简单工厂模式为例:


public class ShapeFactory {

  //使用 getShape 方法获取形状类型的对象

  public Shape getShape(String shapeType){

   if(shapeType == null)

     return null;

       

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

     return new Circle();

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

     return new Rectangle();

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

     return new Square();

   }

   return null;

  }

}

问题3:请简述观察者模式Observer的使用场景以及实现方式。

观察者模式是一种常用的设计模式,在“一对多”的情况下非常有效。例如,在一些软件中,需要实现邮件提醒的功能,那么可以使用观察者模式,将邮件提醒的功能实现为观察者,将用户实现为被观察者。实现过程中,一般会定义抽象被观察者和抽象观察者,然后分别实现具体的子类。

以抽象被观察者为例:


import java.util.ArrayList;

import java.util.List;

public abstract class Subject {

  private List observers = new ArrayList ();

  public void attach(Observer observer){

   observers.add(observer);   

  }

  public void detach(Observer observer){

   observers.remove(observer);

  }

  public void notifyObservers(){

   for (Observer observer : observers) {

     observer.update();

   }

  }

}

根据以上三个问题及其答案,可以得出以下关键词:

1. Java设计模式

2. 清华大学

3. 单例模式、工厂模式、观察者模式

  
  

评论区

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