java有几种设计模式从初学者到专家的指南

示例示例Java有23种设计模式,它们分别是:工厂模式(Factory Pattern)

示例示例Java有23种设计模式,它们分别是:工厂模式(Factory Pattern)

Java有23种设计模式,它们分别是:

1. 工厂模式(Factory Pattern)

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;

}

}

2. 抽象工厂模式(Abstract Factory Pattern)

public abstract class AbstractFactory {

abstract Color getColor(String color);

abstract Shape getShape(String shape) ;

}

public class ShapeFactory extends AbstractFactory {

@Override

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;

}

@Override

Color getColor(String color) {

return null;

}

}

3. 单例模式(Singleton Pattern)

public class Singleton {

private static Singleton instance;

private Singleton(){}

public static Singleton getInstance(){

if(instance == null){

instance = new Singleton();

}

return instance;

}

}

4. 命令模式(Command Pattern)

public intece Order {

void execute();

}

public class BuyStock implements Order {

private Stock abcStock;

public BuyStock(Stock abcStock){

this.abcStock = abcStock;

}

public void execute() {

abcStock.buy();

}

}

5. 观察者模式(Observer Pattern)

public intece Subject {

public void registerObserver(Observer o);

public void removeObserver(Observer o);

public void notifyObservers();

}

public class WeatherData implements Subject {

private ArrayList observers;

private float temperature;

private float humidity;

private float pressure;

public WeatherData(){

observers = new ArrayList();

}

public void registerObserver(Observer o) {

observers.add(o);

}

public void removeObserver(Observer o) {

int i = observers.indexOf(o);

if (i >= 0) {

observers.remove(i);

}

}

public void notifyObservers() {

for (int i = 0; i < observers.size(); i++) {

Observer observer = (Observer)observers.get(i);

observer.update(temperature, humidity, pressure);

}

}

public void measurementsChanged() {

notifyObservers();

}

public void setMeasurements(float temperature, float humidity, float pressure) {

this.temperature = temperature;

this.humidity = humidity;

this.pressure = pressure;

measurementsChanged();

}

}

6. 策略模式(Strategy Pattern)

public intece Strategy {

public int doOperation(int num1, int num2);

}

public class Operation

本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处

(551)
java实训感想开启我的编程之旅
上一篇
capitalcity是什么意思首都的启示——探索世界各地的首都文化
下一篇

相关推荐

  • java编程技术大全pdf下载从入门到精通

    Java编程技术大全PDF下载是一种可以帮助开发者学习和提高Java编程技能的资料。它涵盖了Java编程语言、Java EE、Java SE、Java ME、JVM、JDBC、JSP、Servlet等多个方面的内容,可以帮助开发者更好地理解和掌握Java编程技术。…

    2023-06-16 10:44:04
    0 92 46
  • java插入排序:如何使用Java实现插入排序

    插入排序是一种简单的排序算法,它通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。Java代码如下:…

    2023-04-02 03:13:27
    0 19 12
  • php跟java有什么区别编程语言特性比较

    示例示例语言特性:PHP是一种弱类型的脚本语言,变量不需要声明类型,可以直接赋值;而Java是一种强类型的语言,变量必须声明类型,才能使用。…

    2023-10-31 06:04:23
    0 81 79
  • java与jsp:如何使用Java和JSP构建功能强大的Web应用

    示例示例Java和JSP是两种不同的技术,它们都是用于开发Web应用程序的重要工具。Java是一种面向对象的编程语言,用于编写可在多种平台上运行的跨平台应用程序。它可以用于开发各种类型的应用程序,包括桌面应用程序、服务器端应用程序和Web应用程序。Java应用程序通常使用Java类库来实现其功能。…

    2023-06-15 13:33:03
    0 39 29
  • java小程序源码:如何使用Java小程序实现功能强大的应用

    示例示例Java小程序源码是指使用Java语言开发的小程序,它可以运行在Java虚拟机上。下面是一个简单的Java小程序源码示例:…

    2023-05-11 09:27:45
    0 86 58
  • java实现多线程的两种方式:使用Java实现多线程的两种方式

    示例示例Java实现多线程的两种方式:继承Thread类:…

    2023-06-13 07:43:19
    0 31 81
  • java获取请求头信息实现HTTP客户端的功能

    示例示例Java获取请求头信息的方法如下:通过对象的(String name)方法来获取请求头信息,其中name参数是要获取的请求头的名字,返回值是一个字符串,表示请求头对应的值。…

    2023-04-07 11:10:57
    0 25 84
  • java的优缺点Java编程语言的利弊

    示例示例优点:Java是一种面向对象的编程语言,它的语法简单易懂,易于学习和使用。…

    2024-01-24 11:18:15
    0 32 53

发表评论

登录 后才能评论

评论列表(44条)