Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lsh
patterns
提交
7a52f735
P
patterns
项目概览
lsh
/
patterns
通知
7
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
patterns
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
7a52f735
编写于
11月 24, 2021
作者:
C
chenjianqiang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加建造者模式 (*/ω\*)(*/ω\*)
上级
8ea932fb
变更
24
隐藏空白更改
内联
并排
Showing
24 changed file
with
225 addition
and
16 deletion
+225
-16
out/production/patterns/com/pattern/BuilderPattern/materials/BuilderMain.class
...ns/com/pattern/BuilderPattern/materials/BuilderMain.class
+0
-0
out/production/patterns/com/pattern/BuilderPattern/materials/po/Goods.class
...terns/com/pattern/BuilderPattern/materials/po/Goods.class
+0
-0
out/production/patterns/com/pattern/BuilderPattern/materials/po/GoodsBurger.class
...com/pattern/BuilderPattern/materials/po/GoodsBurger.class
+0
-0
out/production/patterns/com/pattern/BuilderPattern/materials/po/GoodsBurgerMeat.class
...pattern/BuilderPattern/materials/po/GoodsBurgerMeat.class
+0
-0
out/production/patterns/com/pattern/BuilderPattern/materials/po/GoodsBurgerVeg.class
.../pattern/BuilderPattern/materials/po/GoodsBurgerVeg.class
+0
-0
out/production/patterns/com/pattern/BuilderPattern/materials/po/Packing.class
...rns/com/pattern/BuilderPattern/materials/po/Packing.class
+0
-0
out/production/patterns/com/pattern/BuilderPattern/materials/po/PackingBottle.class
...m/pattern/BuilderPattern/materials/po/PackingBottle.class
+0
-0
out/production/patterns/com/pattern/BuilderPattern/materials/po/PackingPlastic.class
.../pattern/BuilderPattern/materials/po/PackingPlastic.class
+0
-0
out/production/patterns/com/pattern/BuilderPattern/materials/po/Shopping.class
...ns/com/pattern/BuilderPattern/materials/po/Shopping.class
+0
-0
out/production/patterns/com/pattern/BuilderPattern/materials/po/builder/Builder.class
...pattern/BuilderPattern/materials/po/builder/Builder.class
+0
-0
out/production/patterns/com/pattern/PatternApplication.class
out/production/patterns/com/pattern/PatternApplication.class
+0
-0
src/com/pattern/BuilderPattern/examples/README.md
src/com/pattern/BuilderPattern/examples/README.md
+0
-0
src/com/pattern/BuilderPattern/materials/BuilderMain.java
src/com/pattern/BuilderPattern/materials/BuilderMain.java
+18
-0
src/com/pattern/BuilderPattern/materials/README.md
src/com/pattern/BuilderPattern/materials/README.md
+0
-0
src/com/pattern/BuilderPattern/materials/po/Goods.java
src/com/pattern/BuilderPattern/materials/po/Goods.java
+26
-0
src/com/pattern/BuilderPattern/materials/po/GoodsBurger.java
src/com/pattern/BuilderPattern/materials/po/GoodsBurger.java
+18
-0
src/com/pattern/BuilderPattern/materials/po/GoodsBurgerMeat.java
.../pattern/BuilderPattern/materials/po/GoodsBurgerMeat.java
+30
-0
src/com/pattern/BuilderPattern/materials/po/GoodsBurgerVeg.java
...m/pattern/BuilderPattern/materials/po/GoodsBurgerVeg.java
+30
-0
src/com/pattern/BuilderPattern/materials/po/Packing.java
src/com/pattern/BuilderPattern/materials/po/Packing.java
+13
-0
src/com/pattern/BuilderPattern/materials/po/PackingBottle.java
...om/pattern/BuilderPattern/materials/po/PackingBottle.java
+19
-0
src/com/pattern/BuilderPattern/materials/po/PackingPlastic.java
...m/pattern/BuilderPattern/materials/po/PackingPlastic.java
+19
-0
src/com/pattern/BuilderPattern/materials/po/Shopping.java
src/com/pattern/BuilderPattern/materials/po/Shopping.java
+22
-0
src/com/pattern/BuilderPattern/materials/po/builder/Builder.java
.../pattern/BuilderPattern/materials/po/builder/Builder.java
+23
-0
src/com/pattern/PatternApplication.java
src/com/pattern/PatternApplication.java
+7
-16
未找到文件。
out/production/patterns/com/pattern/BuilderPattern/materials/BuilderMain.class
0 → 100644
浏览文件 @
7a52f735
文件已添加
out/production/patterns/com/pattern/BuilderPattern/materials/po/Goods.class
0 → 100644
浏览文件 @
7a52f735
文件已添加
out/production/patterns/com/pattern/BuilderPattern/materials/po/GoodsBurger.class
0 → 100644
浏览文件 @
7a52f735
文件已添加
out/production/patterns/com/pattern/BuilderPattern/materials/po/GoodsBurgerMeat.class
0 → 100644
浏览文件 @
7a52f735
文件已添加
out/production/patterns/com/pattern/BuilderPattern/materials/po/GoodsBurgerVeg.class
0 → 100644
浏览文件 @
7a52f735
文件已添加
out/production/patterns/com/pattern/BuilderPattern/materials/po/Packing.class
0 → 100644
浏览文件 @
7a52f735
文件已添加
out/production/patterns/com/pattern/BuilderPattern/materials/po/PackingBottle.class
0 → 100644
浏览文件 @
7a52f735
文件已添加
out/production/patterns/com/pattern/BuilderPattern/materials/po/PackingPlastic.class
0 → 100644
浏览文件 @
7a52f735
文件已添加
out/production/patterns/com/pattern/BuilderPattern/materials/po/Shopping.class
0 → 100644
浏览文件 @
7a52f735
文件已添加
out/production/patterns/com/pattern/BuilderPattern/materials/po/builder/Builder.class
0 → 100644
浏览文件 @
7a52f735
文件已添加
out/production/patterns/com/pattern/PatternApplication.class
浏览文件 @
7a52f735
无法预览此类型文件
src/com/pattern/BuilderPattern/examples/README.md
0 → 100644
浏览文件 @
7a52f735
src/com/pattern/BuilderPattern/materials/BuilderMain.java
0 → 100644
浏览文件 @
7a52f735
package
com.pattern.BuilderPattern.materials
;
import
com.pattern.BuilderPattern.materials.po.builder.Builder
;
/**
* 建造者模式
*
* @author lx
* @date 2021/11/24 15:54
**/
public
class
BuilderMain
{
public
void
main
()
{
Builder
b
=
new
Builder
();
System
.
err
.
println
(
"一共消费:"
+
b
.
shoppingOne
().
cost
());
}
}
src/com/pattern/BuilderPattern/materials/README.md
0 → 100644
浏览文件 @
7a52f735
src/com/pattern/BuilderPattern/materials/po/Goods.java
0 → 100644
浏览文件 @
7a52f735
package
com.pattern.BuilderPattern.materials.po
;
/**
* 物品
* @author lx
* @date 2021/11/24 15:56
**/
public
interface
Goods
{
/**
* 获取名字
* @return 名称
*/
String
getName
();
/**
* 获取价格
* @return 价格
*/
Float
getPrice
();
/**
* 包装类型
* @return 包装类型名称
*/
Packing
doPack
();
}
src/com/pattern/BuilderPattern/materials/po/GoodsBurger.java
0 → 100644
浏览文件 @
7a52f735
package
com.pattern.BuilderPattern.materials.po
;
/**
* @author lx
* @date 2021/11/24 16:02
**/
public
abstract
class
GoodsBurger
implements
Goods
{
/**
* 包装类型
*
* @return 包装类型名称
*/
@Override
public
Packing
doPack
()
{
// 往下所有的汉堡包打包方式都是 塑料袋
return
new
PackingPlastic
();
}
}
src/com/pattern/BuilderPattern/materials/po/GoodsBurgerMeat.java
0 → 100644
浏览文件 @
7a52f735
package
com.pattern.BuilderPattern.materials.po
;
/**
* 汉堡的一种,,肉类
*
* @author lx
* @date 2021/11/24 16:02
**/
public
class
GoodsBurgerMeat
extends
GoodsBurger
{
/**
* 获取名字
*
* @return 名称
*/
@Override
public
String
getName
()
{
return
"meat-burger"
;
}
/**
* 获取价格
*
* @return 价格
*/
@Override
public
Float
getPrice
()
{
return
6.66
F
;
}
}
src/com/pattern/BuilderPattern/materials/po/GoodsBurgerVeg.java
0 → 100644
浏览文件 @
7a52f735
package
com.pattern.BuilderPattern.materials.po
;
/**
* 汉堡的一种,,蔬菜
*
* @author lx
* @date 2021/11/24 16:02
**/
public
class
GoodsBurgerVeg
extends
GoodsBurger
{
/**
* 获取名字
*
* @return 名称
*/
@Override
public
String
getName
()
{
return
"veg-burger"
;
}
/**
* 获取价格
*
* @return 价格
*/
@Override
public
Float
getPrice
()
{
return
56.55
F
;
}
}
src/com/pattern/BuilderPattern/materials/po/Packing.java
0 → 100644
浏览文件 @
7a52f735
package
com.pattern.BuilderPattern.materials.po
;
/**
* 打包
* @author lx
*/
public
interface
Packing
{
/**
* 打包
* @return 响应打包类型
*/
String
doPack
();
}
src/com/pattern/BuilderPattern/materials/po/PackingBottle.java
0 → 100644
浏览文件 @
7a52f735
package
com.pattern.BuilderPattern.materials.po
;
/**
* 玻璃瓶
*
* @author lx
* @date 2021/11/24 15:59
**/
public
class
PackingBottle
implements
Packing
{
/**
* 打包
*
* @return 响应打包类型
*/
@Override
public
String
doPack
()
{
return
"bottle"
;
}
}
src/com/pattern/BuilderPattern/materials/po/PackingPlastic.java
0 → 100644
浏览文件 @
7a52f735
package
com.pattern.BuilderPattern.materials.po
;
/**
* 塑料袋
*
* @author lx
* @date 2021/11/24 15:59
**/
public
class
PackingPlastic
implements
Packing
{
/**
* 打包
*
* @return 响应打包类型
*/
@Override
public
String
doPack
()
{
return
"plastic"
;
}
}
src/com/pattern/BuilderPattern/materials/po/Shopping.java
0 → 100644
浏览文件 @
7a52f735
package
com.pattern.BuilderPattern.materials.po
;
import
java.util.ArrayList
;
import
java.util.List
;
/**
*
* @author lx
* @date 2021/11/24 16:15
**/
public
class
Shopping
{
private
final
List
<
Goods
>
goodsBuy
=
new
ArrayList
<>();
public
void
shop
(
Goods
one
){
System
.
out
.
println
(
"购买了:"
+
one
.
getName
());
goodsBuy
.
add
(
one
);
}
public
Double
cost
(){
return
goodsBuy
.
parallelStream
().
mapToDouble
(
Goods:
:
getPrice
).
sum
();
}
}
src/com/pattern/BuilderPattern/materials/po/builder/Builder.java
0 → 100644
浏览文件 @
7a52f735
package
com.pattern.BuilderPattern.materials.po.builder
;
import
com.pattern.BuilderPattern.materials.po.Goods
;
import
com.pattern.BuilderPattern.materials.po.GoodsBurgerMeat
;
import
com.pattern.BuilderPattern.materials.po.GoodsBurgerVeg
;
import
com.pattern.BuilderPattern.materials.po.Shopping
;
/**
* @author lx
* @date 2021/11/24 16:10
**/
public
class
Builder
{
/**
* 就是为了创建 Shopping这个载体对象
*/
public
Shopping
shoppingOne
()
{
Shopping
s
=
new
Shopping
();
s
.
shop
(
new
GoodsBurgerMeat
());
s
.
shop
(
new
GoodsBurgerVeg
());
return
s
;
}
}
src/com/pattern/PatternApplication.java
浏览文件 @
7a52f735
package
com.pattern
;
package
com.pattern
;
import
com.pattern.BuilderPattern.materials.BuilderMain
;
/**
/**
* @author lx
* @author lx
*/
*/
...
@@ -12,7 +14,6 @@ public class PatternApplication {
...
@@ -12,7 +14,6 @@ public class PatternApplication {
new InterpreterMain().main();
new InterpreterMain().main();
2021-10-14:制作多个计算规则,用这些规则去拼装组合来实现某些需求
2021-10-14:制作多个计算规则,用这些规则去拼装组合来实现某些需求
2021-11-24:一个接口很多实例的类,其中一个类是终端计算规则,剩下的类传入一个或多个终端计算,并把每一个终端计算结果再进行计算,成为一个单独的计算规则
2021-11-24:一个接口很多实例的类,其中一个类是终端计算规则,剩下的类传入一个或多个终端计算,并把每一个终端计算结果再进行计算,成为一个单独的计算规则
*/
*/
...
@@ -21,7 +22,6 @@ public class PatternApplication {
...
@@ -21,7 +22,6 @@ public class PatternApplication {
new StrategyMain().main();
new StrategyMain().main();
2021-10-14:通过构造context传入不同的规则,再给context执行方法传入不同的值进行不同的计算
2021-10-14:通过构造context传入不同的规则,再给context执行方法传入不同的值进行不同的计算
2021-11-24:context作为触发器,传进来不同的策略,然后执行策略里面的方法
2021-11-24:context作为触发器,传进来不同的策略,然后执行策略里面的方法
*/
*/
...
@@ -29,8 +29,6 @@ public class PatternApplication {
...
@@ -29,8 +29,6 @@ public class PatternApplication {
3.工厂模式 -- 简单工厂
3.工厂模式 -- 简单工厂
new SimpleFactoryMain().main();
new SimpleFactoryMain().main();
2021-10-14:通过factory区分你确切需要的类,返回该类,执行内涵的方法
2021-10-14:通过factory区分你确切需要的类,返回该类,执行内涵的方法
*/
*/
...
@@ -38,8 +36,6 @@ public class PatternApplication {
...
@@ -38,8 +36,6 @@ public class PatternApplication {
3.工厂模式 -- 方法工厂
3.工厂模式 -- 方法工厂
new FunctionFactoryMain().main();
new FunctionFactoryMain().main();
2021-10-14: 一个工厂只能造一种产品,也就是一个方法工厂返回一个对象,想要多个对象就要多个工厂
2021-10-14: 一个工厂只能造一种产品,也就是一个方法工厂返回一个对象,想要多个对象就要多个工厂
*/
*/
...
@@ -47,7 +43,6 @@ public class PatternApplication {
...
@@ -47,7 +43,6 @@ public class PatternApplication {
3.工厂模式 -- 抽象工厂
3.工厂模式 -- 抽象工厂
new AbstractFactoryMain().main();
new AbstractFactoryMain().main();
2021-10-14: 把工厂抽象,实例化一个工厂定义多个对象的产出,然后实例化这个工厂就可以拿到多个产品
2021-10-14: 把工厂抽象,实例化一个工厂定义多个对象的产出,然后实例化这个工厂就可以拿到多个产品
*/
*/
...
@@ -55,7 +50,6 @@ public class PatternApplication {
...
@@ -55,7 +50,6 @@ public class PatternApplication {
4.单例模式
4.单例模式
new SingleMain().main();
new SingleMain().main();
2021-10-14:
2021-10-14:
*/
*/
...
@@ -64,8 +58,6 @@ public class PatternApplication {
...
@@ -64,8 +58,6 @@ public class PatternApplication {
5.模板模式
5.模板模式
new TemplateMain().main();
new TemplateMain().main();
2021-10-14:
2021-10-14:
*/
*/
...
@@ -75,16 +67,12 @@ public class PatternApplication {
...
@@ -75,16 +67,12 @@ public class PatternApplication {
代理模式 ---静态代理
代理模式 ---静态代理
new ProxyMain().staticMain();
new ProxyMain().staticMain();
2021-10-14:
2021-10-14:
*/
*/
/*
/*
7.适配器模式
7.适配器模式
new AdapterMain().main();
new AdapterMain().main();
2021-11-24:
2021-11-24:
*/
*/
...
@@ -92,8 +80,6 @@ public class PatternApplication {
...
@@ -92,8 +80,6 @@ public class PatternApplication {
8.桥接模式
8.桥接模式
new BridgeMain().main();
new BridgeMain().main();
2021-11-24: 传入一个类,被传入的对象调用类中的方法
2021-11-24: 传入一个类,被传入的对象调用类中的方法
*/
*/
...
@@ -102,8 +88,13 @@ public class PatternApplication {
...
@@ -102,8 +88,13 @@ public class PatternApplication {
9.原型模式
9.原型模式
new PrototypeMain().main();
new PrototypeMain().main();
2021-11-24:
2021-11-24:
*/
/*
10.建造者模式
new BuilderMain().main();
2021-11-24:抽象类不实现所有接口,构建类里面实例化一个载体,载体提供一些功能
*/
*/
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录