来自阿里Java架构师的十三份设计模式笔记

本文详细介绍了十三种设计模式,包括单例、工厂、策略、观察者、装饰者、命令、适配器、外观、模板方法、迭代器、组合、状态和代理模式。每种模式都配有类图和源代码示例,帮助读者理解和应用这些经典的设计模式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文转载自:来自阿里Java架构师的十三份设计模式笔记


一、单例模式

定义:
确保一个类只有一个实例,并提供一个全局访问点。

类图:

源代码:

public class Singleton {
	private static Singleton instance = null;
	private Singleton(){
	}
	public static Singleton getInstance() {
		if(instance == null){
			synchronized (Singleton.class) {
				instance = new Singleton();
			}
		}
		return instance;
	}
}

二、工厂模式

定义:工厂模式定义了一个创建对象的接口,由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。

2.1 简单工厂模式

类图:

源代码:

public abstract class Product {
	public void method1() {
	}
	public void method2() {
	}
}
public class Product_A extends Product{
	public Product_A() {
	}
	public void method1() {
		System.out.println("this is method1 in Product_A");
	}
	public void method2() {
		System.out.println("this is method2 in Product_A");
	}
}
public class Product_B extends Product{
	public Product_B() {
	}
	public void method1() {
		System.out.println("this is method1 in Product_B");
	}
	public void method2() {
		System.out.println("this is method2 in Product_B");
	}
}
public class Singleton {
	private static Singleton instance = null;
	private Singleton(){
	}
	public static Singleton getInstance() {
		if(instance == null){
			synchronized (Singleton.class) {
				instance = new Singleton();
			}
		}
		return instance;
	}
}

2.2 抽象工厂模式

类图:

源代码:

public interface Product {
	public void method1();
	public void method2();
}
public class Product_A implements Product {
	@Override
		public void method1() {
		System.out.println("this is method1 in Product_A");
	}
	@Override
		public void method2() {
		System.out.println("this is method2 in Product_A");
	}
}
public class Product_B implements Product {
	@Override
		public void method1() {
		System.out.println("this is method1 in Product_B");
	}
	@Override
		public void method2() {
		System.out.println("this is method2 in Product_B");
	}
}
public interface AbstractFactory {
	public Product getProduct();
}
public class Product_A_Factoty implements AbstractFactory {
	@Override
		public Product getProduct() {
		return new Product_A();
	}
}
public class Product_B_Factory implements AbstractFactory {
	@Override
		public Product getProduct() {
		return new Product_B();
	}
}

三、策略模式

定义:策略模式定义了算法族,分别将其封装起

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值