CRUD很无聊?一起学设计模式吧! — 命令模式
蜂信物联FastBee平台https://gitee.com/beecue/fastbee阿里资料开源项目https://gitee.com/vip204888百度低代码前端框架https://gitee.com/baidu/amisOpenHarmony开源项目https://gitcode.com/openharmony仓颉编程语言开放项目https://gitcode.com/Cangjie
蜂信物联FastBee平台https://gitee.com/beecue/fastbee
阿里资料开源项目https://gitee.com/vip204888
百度低代码前端框架https://gitee.com/baidu/amis
OpenHarmony开源项目https://gitcode.com/openharmony
仓颉编程语言开放项目https://gitcode.com/Cangjie
/**
* 抽象命令接口
* 抽象命令接口
* @author jam
* @author jam
* @date 2019/4/3下午11:03
* @date 2019/4/3下午11:03
*/
*/
public interface Task {
interface Task {
//执行命令
//执行命令
void execute();
void execute();
//撤销命令
//撤销命令
void undo();
void undo();
}
/**
* 具体命令角色,需要绑定与执行者之间的关系并调用执行者的具体方法
* 具体命令角色,需要绑定与执行者之间的关系并调用执行者的具体方法
* @author jam
* @author jam
* @date 2019/4/3下午11:04
* @date 2019/4/3下午11:04
*/
*/
public class PSTask implements Task {
class PSTask implements Task {
Developer developer;
Developer developer;
public PSTask(Developer developer) {
public PSTask(Developer developer) {
this.developer = developer;
this.developer = developer;
}
@Override
@Override
public void execute() {
public void execute() {
developer.handleTask();
developer.handleTask();
}
@Override
@Override
public void undo() {
public void undo() {
developer.cancelTask();
developer.cancelTask();
}
}
/**
* 具体命令角色,需要绑定与执行者之间的关系并调用执行者的具体方法
* 具体命令角色,需要绑定与执行者之间的关系并调用执行者的具体方法
* @author jam
* @author jam
* @date 2019/4/3下午11:04
* @date 2019/4/3下午11:04
*/
*/
public class OATask implements Task {
class OATask implements Task {
Developer developer;
Developer developer;
public OATask(Developer developer) {
public OATask(Developer developer) {
this.developer = developer;
this.developer = developer;
}
@Override
@Override
public void execute() {
public void execute() {
developer.handleTask();
developer.handleTask();
}
@Override
@Override
public void undo() {
public void undo() {
developer.cancelTask();
developer.cancelTask();
}
}
/**
* 开发主管,具体调用者
* 开发主管,具体调用者
* @author jam
* @author jam
* @date 2019/4/3下午11:11
* @date 2019/4/3下午11:11
*/
*/
public class DeveloperLeader {
class DeveloperLeader {
Task task;
Task task;
public void setTask(Task task){
public void setTask(Task task){
this.task = task;
this.task = task;
}
//实现需求任务
//实现需求任务
public void handlerTask(){
public void handlerTask(){
task.execute();
task.execute();
}
public void cacelTask(){
public void cacelTask(){
task.undo();
task.undo();
}
}
/**
* 客户端,用于模拟项目经理
* 客户端,用于模拟项目经理
* @author jam
* @author jam
* @date 2019/4/3下午11:14
* @date 2019/4/3下午11:14
*/
*/
public class Test {
class Test {
public static void main(String[] args) {
public static void main(String[] args) {
//此处开发主管就是调用者,会传入一个命令对象,可以用来发出请求
//此处开发主管就是调用者,会传入一个命令对象,可以用来发出请求
DeveloperLeader developerLeader = new DeveloperLeader();
DeveloperLeader developerLeader = new DeveloperLeader();
Developer developer = new Developer("阿黄");
Developer developer = new Developer(“阿黄”);
我的面试宝典:一线互联网大厂Java核心面试题库
以下是我个人的一些做法,希望可以给各位提供一些帮助:
整理了很长一段时间,拿来复习面试刷题非常合适,其中包括了Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等,且还会持续的更新…可star一下!
283页的Java进阶核心pdf文档
Java部分:Java基础,集合,并发,多线程,JVM,设计模式
数据结构算法:Java算法,数据结构
开源框架部分:Spring,MyBatis,MVC,netty,tomcat
分布式部分:架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等
微服务部分:SpringBoot,SpringCloud,Dubbo,Docker
还有源码相关的阅读学习
很长一段时间,拿来复习面试刷题非常合适,其中包括了Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等,且还会持续的更新…可star一下!
[外链图片转存中…(img-JBt0m3Tt-1725128753955)]
283页的Java进阶核心pdf文档
Java部分:Java基础,集合,并发,多线程,JVM,设计模式
数据结构算法:Java算法,数据结构
开源框架部分:Spring,MyBatis,MVC,netty,tomcat
分布式部分:架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等
微服务部分:SpringBoot,SpringCloud,Dubbo,Docker
[外链图片转存中…(img-CAzk9RAC-1725128753956)]
还有源码相关的阅读学习
[外链图片转存中…(img-HpRUmuG9-1725128753957)]
更多推荐
所有评论(0)