简单工厂
一个发送功能的厂,发送方式有(email\sms),需要用哪种发送方式就生产那个
在这里插入代码片
public class Test {
public static void main(String[] args) {
SendFactory sendFactory = new SendFactory();
String sendType = "sms";
Sender sender = sendFactory.produce(sendType);
sender.send();
}
}
在这里插入代码片
public class SendFactory {
public Sender produce(String type) {
if ("mail".equals(type)) {
return new MailSender();
} else if ("sms".equals(type)) {
return new SmsSender();
} else {
System.out.println("请输入正确的类型!");
return null;
}
}
}
`
在这里插入代码片
public interface Sender {
public void send();
}
在这里插入代码片
public class SmsSender implements Sender{
public void send() {
System.out.println("发送一个sms----------");
}
}
在这里插入代码片
public class MailSender implements Sender {
public void send() {
System.out.println("发送一个mail-----------");
}
}
策略模式
定义计算器(类型:加法计算器),计算2数字的和
在这里插入代码片
public class Test {
public static void main(String[] args) {
//定义计算器(类型:加法计算器),计算2数字的和
Calculator calculator = new Calculator();
calculator.setiOperation(new AddOperation());
int i = calculator.doOperation(2, 3);
System.out.println(i);
}
}
计算器
public class Calculator {
/**
* 运算功能接口
*/
private IOperation iOperation;
public void setiOperation(IOperation iOperation) {
this.iOperation = iOperation;
}
/**
* 运算方法
* @return
*/
public int doOperation(int num1,int num2){
return this.iOperation.doOperation(num1,num2);
}
}
计算接口
public interface IOperation {
/**
* 运算方法
* @param num1
* @param num2
* @return
*/
public int doOperation(int num1, int num2);
}
/**
* 加法运算
*/
public class AddOperation implements IOperation{
public int doOperation(int num1, int num2) {
return num1 + num2;
}
}
适配器模式
手机充电时,所需要的电压是比较小的,一般也就5v左右,但是我们家里的插座提供的电源都是220v,我们不可能直接把我们的手机接到220v的电源下,不然手机直接原地爆炸。所以这就出现了一个问题,就是两边的电压不对等,或者说两边的接口即输出电流的接口和接入手机的接口不兼容。那这时手机的电源适配器或者说充电器就出现了,通过一个转换头把220v电压转为手机可承受的5v电压,这样手机就充上电了
1、对象模式
在这里插入代码片
TypeC 接口
public interface TypeC {
//这个接口输出5v电压
void v5();
}
``
```java
在这里插入代码片
插座
public class Socket {
public void v220() {
System.out.println("接入220v电源");
}
}
在这里插入代码片
电源适配器
public class PowerAdapter implements TypeC {
public Socket socket;
public void plugIntoSocket(Socket socket) {
this.socket = socket;
}
public void v5() {
socket.v220();
System.out.println("输出5v电压的接线口");
}
}
在这里插入代码片
public class Test {
public static void main(String[] args) {
PowerAdapter powerAdapter = new PowerAdapter();
Socket socket = new Socket();
powerAdapter.plugIntoSocket(socket);
powerAdapter.v5();
}
}
2、类适配器
在这里插入代码片
public class PowerAdapter extends Socket implements TypeC {
@Override
public void v5() {
this.v220();
System.out.println("输出5v电压的接线口");
}
}
在这里插入代码片
public class Test {
public static void main(String[] args) {
PowerAdapter powerAdapter = new PowerAdapter();
powerAdapter.v5();
}
}