Java设计模式的介绍
Java设计模式是在软件开发中常用的一种解决问题的方式,也是提高代码可维护性、可读性和可扩展性的有效途径。Java设计模式不是框架,而是关于软件设计的一系列惯用解决方案,包含23种设计模式。
Java设计模式的分类:
1.创建型模式: 主要是提供了在创建对象时的一些方法。
常见的创建型模式有:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式等。
2.结构型模式: 联系起来形成更大的结构。
常见的结构型模式有:适配器模式、桥接模式、装饰模式、组合模式、享元模式、代理模式。
3.行为型模式: 它们修改或控制应用程序中的流程。
常见的行为型模式有:责任链模式、命令模式、解释器模式、迭代器模式、中介者模式、备忘录模式、观察者模式、状态模式、策略模式、模板方法模式、访问者模式等。
举例:
1.单例模式
在程序运行过程中,有些类需要全局只有一个对象,比如配置文件的读取类。这时候就可以使用单例模式,保证一个类只有一个实例,并提供一个全局访问点。
public class Singleton {
private static Singleton instance = null;
private Singleton() {
// 私有化构造方法
}
public static Singleton getInstance() {
if (instance == null) {
synchronized(Singleton.class){
if(instance == null){
instance = new Singleton();
}
}
}
return instance;
}
}
2.工厂模式
工厂模式,通过工厂方法来完成对象的创建,将对象的创建与使用分离开来,达到解耦的效果。
public interface Shape {
void draw();
}
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("画了一个圆。");
}
}
public class Square implements Shape {
@Override
public void draw() {
System.out.println("画了一个正方形。");
}
}
public class ShapeFactory {
public Shape getShape(String shapeType){
if (shapeType == null){
return null;
}
if (shapeType.equalsIgnoreCase("CIRCLE")){
return new Circle();
} else if (shapeType.equalsIgnoreCase("SQUARE")){
return new Square();
}
return null;
}
}
public class Test {
public static void main(String[] args) {
ShapeFactory shapeFactory = new ShapeFactory(); // 创建工厂对象实例
Shape shape1 = shapeFactory.getShape("CIRCLE"); // 通过工厂获取 Circle 对象
shape1.draw(); // 调用 Circle 对象的 draw 方法
Shape shape2 = shapeFactory.getShape("SQUARE"); // 通过工厂获取 Square 对象
shape2.draw(); // 调用 Square 对象的 draw 方法
}
}
Java设计模式具有很强的通用性和可重用性,可以用于不同的需求场景,用来提高软件开发的质量和效率。学习好了这些设计模式,可以让程序员的编码更加规范、灵活和高效。
