Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
无难事者若执
23种设计模式
提交
b38ba447
23种设计模式
项目概览
无难事者若执
/
23种设计模式
与 Fork 源项目一致
Fork自
inscode / Java
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
23种设计模式
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b38ba447
编写于
10月 20, 2023
作者:
E
ex_kongxiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(命令模式):create
上级
aed20e66
变更
9
隐藏空白更改
内联
并排
Showing
9 changed file
with
200 addition
and
0 deletion
+200
-0
java/com/kongxiang/raindrop/dp/type/behavior/command/ICommand.java
...kongxiang/raindrop/dp/type/behavior/command/ICommand.java
+16
-0
java/com/kongxiang/raindrop/dp/type/behavior/command/TvChangeChannelCommand.java
...drop/dp/type/behavior/command/TvChangeChannelCommand.java
+25
-0
java/com/kongxiang/raindrop/dp/type/behavior/command/TvController.java
...xiang/raindrop/dp/type/behavior/command/TvController.java
+35
-0
java/com/kongxiang/raindrop/dp/type/behavior/command/TvMain.java
...m/kongxiang/raindrop/dp/type/behavior/command/TvMain.java
+25
-0
java/com/kongxiang/raindrop/dp/type/behavior/command/TvOffCommand.java
...xiang/raindrop/dp/type/behavior/command/TvOffCommand.java
+24
-0
java/com/kongxiang/raindrop/dp/type/behavior/command/TvOnCommand.java
...gxiang/raindrop/dp/type/behavior/command/TvOnCommand.java
+24
-0
java/com/kongxiang/raindrop/dp/type/behavior/command/TvReceiver.java
...ngxiang/raindrop/dp/type/behavior/command/TvReceiver.java
+25
-0
java/com/kongxiang/raindrop/dp/type/behavior/command/命令模式.png
.../com/kongxiang/raindrop/dp/type/behavior/command/命令模式.png
+0
-0
java/com/kongxiang/raindrop/dp/type/behavior/command/命令模式.puml
...com/kongxiang/raindrop/dp/type/behavior/command/命令模式.puml
+26
-0
未找到文件。
java/com/kongxiang/raindrop/dp/type/behavior/command/ICommand.java
0 → 100644
浏览文件 @
b38ba447
package
com.kongxiang.raindrop.dp.type.behavior.command
;
/**
* 抽象命令类
*
* @author 孔翔
* @since 2023-10-20
* copyright for author : 孔翔 at 2023-10-20
* dp
*/
public
interface
ICommand
{
public
void
execute
();
public
void
undo
();
}
java/com/kongxiang/raindrop/dp/type/behavior/command/TvChangeChannelCommand.java
0 → 100644
浏览文件 @
b38ba447
package
com.kongxiang.raindrop.dp.type.behavior.command
;
import
lombok.AllArgsConstructor
;
/**
* @author 孔翔
* @since 2023-10-20
* copyright for author : 孔翔 at 2023-10-20
* dp
*/
@AllArgsConstructor
public
class
TvChangeChannelCommand
implements
ICommand
{
private
TvReceiver
tvReceiver
;
@Override
public
void
execute
()
{
tvReceiver
.
next
();
}
@Override
public
void
undo
()
{
tvReceiver
.
pre
();
}
}
java/com/kongxiang/raindrop/dp/type/behavior/command/TvController.java
0 → 100644
浏览文件 @
b38ba447
package
com.kongxiang.raindrop.dp.type.behavior.command
;
import
lombok.AllArgsConstructor
;
/**
* @author 孔翔
* @since 2023-10-20
* copyright for author : 孔翔 at 2023-10-20
* dp
*/
@AllArgsConstructor
public
class
TvController
{
private
ICommand
on
;
private
ICommand
off
;
private
ICommand
change
;
public
void
trunOn
()
{
on
.
execute
();
}
public
void
trunOff
()
{
off
.
execute
();
}
public
void
turnNext
()
{
change
.
execute
();
}
public
void
turnPre
()
{
change
.
undo
();
}
}
java/com/kongxiang/raindrop/dp/type/behavior/command/TvMain.java
0 → 100644
浏览文件 @
b38ba447
package
com.kongxiang.raindrop.dp.type.behavior.command
;
/**
* @author 孔翔
* @since 2023-10-20
* copyright for author : 孔翔 at 2023-10-20
* dp
*/
public
class
TvMain
{
public
static
void
main
(
String
[]
args
)
{
TvReceiver
tvReceiver
=
new
TvReceiver
();
ICommand
on
=
new
TvOnCommand
(
tvReceiver
);
ICommand
off
=
new
TvOffCommand
(
tvReceiver
);
ICommand
change
=
new
TvChangeChannelCommand
(
tvReceiver
);
TvController
controller
=
new
TvController
(
on
,
off
,
change
);
controller
.
trunOn
();
controller
.
turnNext
();
controller
.
turnPre
();
controller
.
trunOff
();
}
}
java/com/kongxiang/raindrop/dp/type/behavior/command/TvOffCommand.java
0 → 100644
浏览文件 @
b38ba447
package
com.kongxiang.raindrop.dp.type.behavior.command
;
import
lombok.AllArgsConstructor
;
/**
* @author 孔翔
* @since 2023-10-20
* copyright for author : 孔翔 at 2023-10-20
* dp
*/
@AllArgsConstructor
public
class
TvOffCommand
implements
ICommand
{
private
TvReceiver
tvReceiver
;
@Override
public
void
execute
()
{
tvReceiver
.
off
();
}
@Override
public
void
undo
()
{
tvReceiver
.
on
();
}
}
java/com/kongxiang/raindrop/dp/type/behavior/command/TvOnCommand.java
0 → 100644
浏览文件 @
b38ba447
package
com.kongxiang.raindrop.dp.type.behavior.command
;
import
lombok.AllArgsConstructor
;
/**
* @author 孔翔
* @since 2023-10-20
* copyright for author : 孔翔 at 2023-10-20
* dp
*/
@AllArgsConstructor
public
class
TvOnCommand
implements
ICommand
{
private
TvReceiver
tvReceiver
;
@Override
public
void
execute
()
{
tvReceiver
.
on
();
}
@Override
public
void
undo
()
{
tvReceiver
.
off
();
}
}
java/com/kongxiang/raindrop/dp/type/behavior/command/TvReceiver.java
0 → 100644
浏览文件 @
b38ba447
package
com.kongxiang.raindrop.dp.type.behavior.command
;
/**
* @author 孔翔
* @since 2023-10-20
* copyright for author : 孔翔 at 2023-10-20
* dp
*/
public
class
TvReceiver
{
public
void
on
()
{
System
.
out
.
println
(
"电视开机"
);
}
public
void
off
()
{
System
.
out
.
println
(
"电视关机"
);
}
public
void
next
()
{
System
.
out
.
println
(
"换下一个台"
);
}
public
void
pre
(){
System
.
out
.
println
(
"换上一个台"
);
}
}
java/com/kongxiang/raindrop/dp/type/behavior/command/命令模式.png
0 → 100644
浏览文件 @
b38ba447
20.4 KB
java/com/kongxiang/raindrop/dp/type/behavior/command/命令模式.puml
0 → 100644
浏览文件 @
b38ba447
@startuml
'https://plantuml.com/sequence-diagram
skinparam linetype ortho
interface ICommand {
+ void execute();
+ void undo();
}
class CommandImpl
class Invoker {
- ICommand
public turnCommand()
}
class Receiver{
+ someOperate();
}
ICommand <|-- CommandImpl
Invoker o--> ICommand
CommandImpl --> Receiver
@enduml
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录