Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
门心叼龙
itstack-demo-design
提交
56f4bbc5
I
itstack-demo-design
项目概览
门心叼龙
/
itstack-demo-design
通知
4
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
I
itstack-demo-design
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
56f4bbc5
编写于
6月 04, 2020
作者:
小傅哥
⛹
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
小傅哥 | 重学 Java 设计模式:实战桥接模式
上级
addb78fa
变更
14
隐藏空白更改
内联
并排
Showing
14 changed file
with
243 addition
and
0 deletion
+243
-0
.gitignore
.gitignore
+2
-0
itstack-demo-design-7-01/pom.xml
itstack-demo-design-7-01/pom.xml
+15
-0
itstack-demo-design-7-01/src/main/java/org/itstack/demo/design/PayController.java
.../src/main/java/org/itstack/demo/design/PayController.java
+38
-0
itstack-demo-design-7-01/src/test/java/org/itstack/demo/design/ApiTest.java
...n-7-01/src/test/java/org/itstack/demo/design/ApiTest.java
+20
-0
itstack-demo-design-7-02/pom.xml
itstack-demo-design-7-02/pom.xml
+15
-0
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/channel/Pay.java
...rc/main/java/org/itstack/demo/design/pay/channel/Pay.java
+21
-0
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/channel/WxPay.java
.../main/java/org/itstack/demo/design/pay/channel/WxPay.java
+25
-0
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/channel/ZfbPay.java
...main/java/org/itstack/demo/design/pay/channel/ZfbPay.java
+25
-0
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/mode/IPayMode.java
.../main/java/org/itstack/demo/design/pay/mode/IPayMode.java
+7
-0
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/mode/PayCypher.java
...main/java/org/itstack/demo/design/pay/mode/PayCypher.java
+15
-0
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/mode/PayFaceMode.java
...in/java/org/itstack/demo/design/pay/mode/PayFaceMode.java
+15
-0
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/mode/PayFingerprintMode.java
.../org/itstack/demo/design/pay/mode/PayFingerprintMode.java
+15
-0
itstack-demo-design-7-02/src/test/java/org/itstack/demo/design/test/ApiTest.java
...2/src/test/java/org/itstack/demo/design/test/ApiTest.java
+27
-0
pom.xml
pom.xml
+3
-0
未找到文件。
.gitignore
浏览文件 @
56f4bbc5
...
...
@@ -14,3 +14,5 @@
/itstack-demo-design-6-01/itstack-demo-design-6-01.iml
/itstack-demo-design-6-02/itstack-demo-design-6-02.iml
/itstack-demo-design-6-00/itstack-demo-design-6-00.iml
/itstack-demo-design-7-01/itstack-demo-design-7-01.iml
/itstack-demo-design-7-02/itstack-demo-design-7-02.iml
itstack-demo-design-7-01/pom.xml
0 → 100644
浏览文件 @
56f4bbc5
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
itstack-demo-design
</artifactId>
<groupId>
org.itstack
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
itstack-demo-design-7-01
</artifactId>
</project>
\ No newline at end of file
itstack-demo-design-7-01/src/main/java/org/itstack/demo/design/PayController.java
0 → 100755
浏览文件 @
56f4bbc5
package
org.itstack.demo.design
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.math.BigDecimal
;
public
class
PayController
{
private
Logger
logger
=
LoggerFactory
.
getLogger
(
PayController
.
class
);
public
boolean
doPay
(
String
uId
,
String
tradeId
,
BigDecimal
amount
,
int
channelType
,
int
modeType
)
{
// 微信支付
if
(
1
==
channelType
)
{
logger
.
info
(
"模拟微信渠道支付划账开始。uId:{} tradeId:{} amount:{}"
,
uId
,
tradeId
,
amount
);
if
(
1
==
modeType
)
{
logger
.
info
(
"密码支付,风控校验环境安全"
);
}
else
if
(
2
==
modeType
)
{
logger
.
info
(
"人脸支付,风控校验脸部识别"
);
}
else
if
(
3
==
modeType
)
{
logger
.
info
(
"指纹支付,风控校验指纹信息"
);
}
}
// 支付宝支付
else
if
(
2
==
channelType
)
{
logger
.
info
(
"模拟支付宝渠道支付划账开始。uId:{} tradeId:{} amount:{}"
,
uId
,
tradeId
,
amount
);
if
(
1
==
modeType
)
{
logger
.
info
(
"密码支付,风控校验环境安全"
);
}
else
if
(
2
==
modeType
)
{
logger
.
info
(
"人脸支付,风控校验脸部识别"
);
}
else
if
(
3
==
modeType
)
{
logger
.
info
(
"指纹支付,风控校验指纹信息"
);
}
}
return
true
;
}
}
itstack-demo-design-7-01/src/test/java/org/itstack/demo/design/ApiTest.java
0 → 100755
浏览文件 @
56f4bbc5
package
org.itstack.demo.design
;
import
org.junit.Test
;
import
java.math.BigDecimal
;
public
class
ApiTest
{
@Test
public
void
test_pay
()
{
PayController
pay
=
new
PayController
();
System
.
out
.
println
(
"\r\n模拟测试场景;微信支付、人脸方式。"
);
pay
.
doPay
(
"weixin_1092033111"
,
"100000109893"
,
new
BigDecimal
(
100
),
1
,
2
);
System
.
out
.
println
(
"\r\n模拟测试场景;支付宝支付、指纹方式。"
);
pay
.
doPay
(
"jlu19dlxo111"
,
"100000109894"
,
new
BigDecimal
(
100
),
2
,
3
);
}
}
itstack-demo-design-7-02/pom.xml
0 → 100644
浏览文件 @
56f4bbc5
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
itstack-demo-design
</artifactId>
<groupId>
org.itstack
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
itstack-demo-design-7-02
</artifactId>
</project>
\ No newline at end of file
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/channel/Pay.java
0 → 100755
浏览文件 @
56f4bbc5
package
org.itstack.demo.design.pay.channel
;
import
org.itstack.demo.design.pay.mode.IPayMode
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.math.BigDecimal
;
public
abstract
class
Pay
{
protected
Logger
logger
=
LoggerFactory
.
getLogger
(
Pay
.
class
);
protected
IPayMode
payMode
;
public
Pay
(
IPayMode
payMode
)
{
this
.
payMode
=
payMode
;
}
public
abstract
String
transfer
(
String
uId
,
String
tradeId
,
BigDecimal
amount
);
}
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/channel/WxPay.java
0 → 100755
浏览文件 @
56f4bbc5
package
org.itstack.demo.design.pay.channel
;
import
org.itstack.demo.design.pay.mode.IPayMode
;
import
java.math.BigDecimal
;
public
class
WxPay
extends
Pay
{
public
WxPay
(
IPayMode
payMode
)
{
super
(
payMode
);
}
public
String
transfer
(
String
uId
,
String
tradeId
,
BigDecimal
amount
)
{
logger
.
info
(
"模拟微信渠道支付划账开始。uId:{} tradeId:{} amount:{}"
,
uId
,
tradeId
,
amount
);
boolean
security
=
payMode
.
security
(
uId
);
logger
.
info
(
"模拟微信渠道支付风控校验。uId:{} tradeId:{} security:{}"
,
uId
,
tradeId
,
security
);
if
(!
security
)
{
logger
.
info
(
"模拟微信渠道支付划账拦截。uId:{} tradeId:{} amount:{}"
,
uId
,
tradeId
,
amount
);
return
"0001"
;
}
logger
.
info
(
"模拟微信渠道支付划账成功。uId:{} tradeId:{} amount:{}"
,
uId
,
tradeId
,
amount
);
return
"0000"
;
}
}
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/channel/ZfbPay.java
0 → 100755
浏览文件 @
56f4bbc5
package
org.itstack.demo.design.pay.channel
;
import
org.itstack.demo.design.pay.mode.IPayMode
;
import
java.math.BigDecimal
;
public
class
ZfbPay
extends
Pay
{
public
ZfbPay
(
IPayMode
payMode
)
{
super
(
payMode
);
}
public
String
transfer
(
String
uId
,
String
tradeId
,
BigDecimal
amount
)
{
logger
.
info
(
"模拟支付宝渠道支付划账开始。uId:{} tradeId:{} amount:{}"
,
uId
,
tradeId
,
amount
);
boolean
security
=
payMode
.
security
(
uId
);
logger
.
info
(
"模拟支付宝渠道支付风控校验。uId:{} tradeId:{} security:{}"
,
uId
,
tradeId
,
security
);
if
(!
security
)
{
logger
.
info
(
"模拟支付宝渠道支付划账拦截。uId:{} tradeId:{} amount:{}"
,
uId
,
tradeId
,
amount
);
return
"0001"
;
}
logger
.
info
(
"模拟支付宝渠道支付划账成功。uId:{} tradeId:{} amount:{}"
,
uId
,
tradeId
,
amount
);
return
"0000"
;
}
}
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/mode/IPayMode.java
0 → 100755
浏览文件 @
56f4bbc5
package
org.itstack.demo.design.pay.mode
;
public
interface
IPayMode
{
boolean
security
(
String
uId
);
}
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/mode/PayCypher.java
0 → 100755
浏览文件 @
56f4bbc5
package
org.itstack.demo.design.pay.mode
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
class
PayCypher
implements
IPayMode
{
protected
Logger
logger
=
LoggerFactory
.
getLogger
(
PayCypher
.
class
);
public
boolean
security
(
String
uId
)
{
logger
.
info
(
"密码支付,风控校验环境安全"
);
return
true
;
}
}
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/mode/PayFaceMode.java
0 → 100755
浏览文件 @
56f4bbc5
package
org.itstack.demo.design.pay.mode
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
class
PayFaceMode
implements
IPayMode
{
protected
Logger
logger
=
LoggerFactory
.
getLogger
(
PayCypher
.
class
);
public
boolean
security
(
String
uId
)
{
logger
.
info
(
"人脸支付,风控校验脸部识别"
);
return
true
;
}
}
\ No newline at end of file
itstack-demo-design-7-02/src/main/java/org/itstack/demo/design/pay/mode/PayFingerprintMode.java
0 → 100755
浏览文件 @
56f4bbc5
package
org.itstack.demo.design.pay.mode
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
class
PayFingerprintMode
implements
IPayMode
{
protected
Logger
logger
=
LoggerFactory
.
getLogger
(
PayCypher
.
class
);
public
boolean
security
(
String
uId
)
{
logger
.
info
(
"指纹支付,风控校验指纹信息"
);
return
true
;
}
}
itstack-demo-design-7-02/src/test/java/org/itstack/demo/design/test/ApiTest.java
0 → 100755
浏览文件 @
56f4bbc5
package
org.itstack.demo.design.test
;
import
org.itstack.demo.design.pay.channel.Pay
;
import
org.itstack.demo.design.pay.channel.WxPay
;
import
org.itstack.demo.design.pay.channel.ZfbPay
;
import
org.itstack.demo.design.pay.mode.PayFaceMode
;
import
org.itstack.demo.design.pay.mode.PayFingerprintMode
;
import
org.junit.Test
;
import
java.math.BigDecimal
;
public
class
ApiTest
{
@Test
public
void
test_pay
()
{
System
.
out
.
println
(
"\r\n模拟测试场景;微信支付、人脸方式。"
);
Pay
wxPay
=
new
WxPay
(
new
PayFaceMode
());
wxPay
.
transfer
(
"weixin_1092033111"
,
"100000109893"
,
new
BigDecimal
(
100
));
System
.
out
.
println
(
"\r\n模拟测试场景;支付宝支付、指纹方式。"
);
Pay
zfbPay
=
new
ZfbPay
(
new
PayFingerprintMode
());
zfbPay
.
transfer
(
"jlu19dlxo111"
,
"100000109894"
,
new
BigDecimal
(
100
));
}
}
pom.xml
浏览文件 @
56f4bbc5
...
...
@@ -25,6 +25,9 @@
<module>
itstack-demo-design-6-00
</module>
<module>
itstack-demo-design-6-01
</module>
<module>
itstack-demo-design-6-02
</module>
<module>
itstack-demo-design-7-01
</module>
<module>
itstack-demo-design-02
</module>
<module>
itstack-demo-design-7-02
</module>
</modules>
<dependencies>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录