什么是设计模式
设计模式是一套被广泛使用的最佳软件设计实践方法,用来解决在软件设计过程中常见的问题。设计模式不是具体的算法或者代码片段,而是一种解决问题的思维方式,通过应用这些模式可以提高代码的可重用性、可维护性及可扩展性。
Java中的设计模式
Java作为一门面向对象的编程语言,与设计模式紧密相连。在Java中,常用的设计模式包括但不限于:单例模式、工厂模式、建造者模式、适配器模式、装饰器模式、观察者模式等。
单例模式
单例模式保证某个类只有一个实例,在整个程序中共享使用。它在Java中的应用非常广泛,例如线程池、日志对象等。
public class Singleton {
private static Singleton instance;
private Singleton() {}
public static Singleton getInstance() {
if(instance == null) {
synchronized(Singleton.class) {
if(instance == null) {
instance = new Singleton();
}
}
}
return instance;
}
}
工厂模式
工厂模式根据输入的参数决定创建哪种类型的对象。它解耦了对象的创建和使用,通过工厂类统一管理创建逻辑,提高了代码的可维护性和拓展性。
public interface Shape {
void draw();
}
public class Circle implements Shape {
@Override
public void draw() {
System.out.println("Circle::draw()");
}
}
public class Rectangle implements Shape {
@Override
public void draw() {
System.out.println("Rectangle::draw()");
}
}
public class ShapeFactory {
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();
}
return null;
}
}
建造者模式
建造者模式用于创建复杂对象,将对象的构建与表示分离,使得同样的构建过程可以创建不同的表示。
public class Product {
private String partA;
private String partB;
private String partC;
public void setPartA(String partA){
this.partA = partA;
}
public void setPartB(String partB){
this.partB = partB;
}
public void setPartC(String partC){
this.partC = partC;
}
public void show(){
System.out.println("Part A: " + partA);
System.out.println("Part B: " + partB);
System.out.println("Part C: " + partC);
}
}
public abstract class Builder {
protected Product product = new Product();
public abstract void buildPartA();
public abstract void buildPartB();
public abstract void buildPartC();
public Product getResult(){
return product;
}
}
public class ConcreteBuilder extends Builder {
@Override
public void buildPartA() {
product.setPartA("PartA");
}
@Override
public void buildPartB() {
product.setPartB("PartB");
}
@Override
public void buildPartC() {
product.setPartC("PartC");
}
}
public class Director {
private Builder builder;
public Director(Builder builder){
this.builder = builder;
}
public void construct(){
builder.buildPartA();
builder.buildPartB();
builder.buildPartC();
}
}
public class Client {
public static void main(String[] args) {
Builder builder = new ConcreteBuilder();
Director director = new Director(builder);
director.construct();
Product product = builder.getResult();
product.show();
}
}
总结
设计模式是提高代码可复用性、可维护性和可拓展性的重要手段。在Java中,通过运用设计模式,可以使代码更加清晰、简洁、可维护。以上只是Java中部分常用的设计模式,实际应用中还有更多的设计模式供我们借鉴。
本文来自极简博客,作者:樱花飘落,转载请注明原文链接:设计模式在Java中的应用