Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
无难事者若执
23种设计模式
提交
40f3a070
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看板
提交
40f3a070
编写于
10月 23, 2023
作者:
E
ex_kongxiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat(组合模式):create
上级
6ca37677
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
118 addition
and
0 deletion
+118
-0
java/com/kongxiang/raindrop/dp/type/structure/composite/Client.java
...ongxiang/raindrop/dp/type/structure/composite/Client.java
+32
-0
java/com/kongxiang/raindrop/dp/type/structure/composite/Component.java
...xiang/raindrop/dp/type/structure/composite/Component.java
+21
-0
java/com/kongxiang/raindrop/dp/type/structure/composite/Composite.java
...xiang/raindrop/dp/type/structure/composite/Composite.java
+36
-0
java/com/kongxiang/raindrop/dp/type/structure/composite/Leaf.java
.../kongxiang/raindrop/dp/type/structure/composite/Leaf.java
+29
-0
未找到文件。
java/com/kongxiang/raindrop/dp/type/structure/composite/Client.java
0 → 100644
浏览文件 @
40f3a070
package
com.kongxiang.raindrop.dp.type.structure.composite
;
/**
* @author 孔翔
* @since 2023-10-23
* copyright for author : 孔翔 at 2023-10-23
* dp
*/
public
class
Client
{
public
static
void
main
(
String
[]
args
)
{
Leaf
leaf
=
new
Leaf
(
"张三”"
);
Leaf
leaf1
=
new
Leaf
(
"张4”"
);
Leaf
leaf2
=
new
Leaf
(
"张5”"
);
Leaf
leaf3
=
new
Leaf
(
"张6”"
);
Leaf
leaf4
=
new
Leaf
(
"张7”"
);
Composite
composite
=
new
Composite
(
"组1"
);
composite
.
add
(
leaf
);
composite
.
add
(
leaf1
);
Composite
composite2
=
new
Composite
(
"组2"
);
composite2
.
add
(
leaf2
);
composite2
.
add
(
leaf3
);
Composite
composite3
=
new
Composite
(
"组3"
);
composite3
.
add
(
leaf4
);
composite
.
add
(
composite2
);
composite2
.
add
(
composite3
);
composite
.
draw
();
}
}
java/com/kongxiang/raindrop/dp/type/structure/composite/Component.java
0 → 100644
浏览文件 @
40f3a070
package
com.kongxiang.raindrop.dp.type.structure.composite
;
/**
* @author 孔翔
* @since 2023-10-23
* copyright for author : 孔翔 at 2023-10-23
* dp
*/
public
abstract
class
Component
{
protected
String
name
;
public
Component
(
String
name
){
this
.
name
=
name
;
}
public
abstract
void
draw
();
public
abstract
void
add
(
Component
component
);
public
abstract
void
remove
(
Component
component
);
}
java/com/kongxiang/raindrop/dp/type/structure/composite/Composite.java
0 → 100644
浏览文件 @
40f3a070
package
com.kongxiang.raindrop.dp.type.structure.composite
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
* @author 孔翔
* @since 2023-10-23
* copyright for author : 孔翔 at 2023-10-23
* dp
*/
public
class
Composite
extends
Component
{
private
List
<
Component
>
componentList
=
new
ArrayList
<>();
public
Composite
(
String
name
)
{
super
(
name
);
}
@Override
public
void
draw
()
{
for
(
Component
com
:
componentList
)
{
com
.
draw
();
}
}
@Override
public
void
add
(
Component
component
)
{
this
.
componentList
.
add
(
component
);
}
@Override
public
void
remove
(
Component
component
)
{
this
.
componentList
.
remove
(
component
);
}
}
java/com/kongxiang/raindrop/dp/type/structure/composite/Leaf.java
0 → 100644
浏览文件 @
40f3a070
package
com.kongxiang.raindrop.dp.type.structure.composite
;
/**
* @author 孔翔
* @since 2023-10-23
* copyright for author : 孔翔 at 2023-10-23
* dp
*/
public
class
Leaf
extends
Component
{
public
Leaf
(
String
name
)
{
super
(
name
);
}
@Override
public
void
draw
()
{
System
.
out
.
println
(
this
.
name
);
}
@Override
public
void
add
(
Component
component
)
{
throw
new
IllegalArgumentException
(
"叶节点不能添加组件"
);
}
@Override
public
void
remove
(
Component
component
)
{
throw
new
IllegalArgumentException
(
"叶节点不能移除组件"
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录