当前位置:首页 » 《随便一记》 » 正文

【设计模式】【第七章】【第三方登录场景】【桥接模式】

29 人参与  2022年11月07日 13:22  分类 : 《随便一记》  评论

点击全文阅读


文章目录

创建design-demo项目创建UserController创建UserService创建UserServiceImpl创建LoginFunc创建WbLoginFunc创建ZfbLoginFunc创建AbstractLoginProcessor创建ThirdPartLogin

创建design-demo项目

项目代码:https://gitee.com/java_wxid/java_wxid/tree/master/demo/design-demo
项目结构如下(示例):
在这里插入图片描述

创建UserController

代码如下(示例):

package com.example.designdemo.controller;import com.example.designdemo.pojo.TicketParam;import com.example.designdemo.service.UserService;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;import java.util.List;/** * @Author: zhiwei Liao * @Date: 2022/9/25 19:26 * @Description: */@RestControllerpublic class UserController {    @Autowired    private UserService userService;    @PostMapping("/login")    public Boolean login(@RequestParam String name, @RequestParam String pwd, @RequestParam String type) {        return userService.login(name, pwd, type);    }}

创建UserService

代码如下(示例):

package com.example.designdemo.service;import com.example.designdemo.pojo.TicketParam;import java.util.List;/** * @Author: zhiwei Liao * @Date: 2022/9/25 9:28 * @Description: */public interface UserService {    Boolean login(String name, String pwd, String type);}

创建UserServiceImpl

代码如下(示例):

package com.example.designdemo.service.impl;import com.example.designdemo.handler.SuggestRequirementHandlerProcess;import com.example.designdemo.implementor.LoginFunc;import com.example.designdemo.implementor.WbLoginFunc;import com.example.designdemo.implementor.abstractlogin.AbstractLoginProcessor;import com.example.designdemo.implementor.abstractlogin.ThirdPartLogin;import com.example.designdemo.pojo.TicketParam;import com.example.designdemo.pojo.UserInfo;import com.example.designdemo.service.UserService;import com.example.designdemo.ticket.builder.CompanyTicketBuilder;import com.example.designdemo.ticket.builder.PersonalTicketBuilder;import com.example.designdemo.ticket.builder.TicketBuilder;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import java.util.ArrayList;import java.util.List;@Servicepublic class UserServiceImpl implements UserService {    public Boolean login(String name, String pwd, String type) {        // 这部分我就不进行封装了,直接在 service里做了。小伙伴可以自行实现封装,类似享元。        // 这部分是桥接模式的实现。        if(type.equals("wb")) {            LoginFunc func = new WbLoginFunc();            AbstractLoginProcessor processor = new ThirdPartLogin(func);            return processor.loginExecute(name, pwd, type);        }        return true;    }}

创建LoginFunc

代码如下(示例):

package com.example.designdemo.implementor;public interface LoginFunc {    public boolean login(String name, String pwd, String type);}

创建WbLoginFunc

代码如下(示例):

package com.example.designdemo.implementor;public class WbLoginFunc implements LoginFunc{    @Override    public boolean login(String name, String pwd, String type) {        // 进行第三方账号的校验流程。        System.out.println("Wb 验证通过,可以登录。");        return true;    }}

创建ZfbLoginFunc

代码如下(示例):

package com.example.designdemo.implementor;public class ZfbLoginFunc implements LoginFunc{    @Override    public boolean login(String name, String pwd, String type) {        // 进行第三方账号的校验流程。        System.out.println("Zfb 验证通过,可以登录。");        return true;    }}

创建AbstractLoginProcessor

代码如下(示例):

package com.example.designdemo.implementor.abstractlogin;import com.example.designdemo.implementor.LoginFunc;public abstract class AbstractLoginProcessor {    protected LoginFunc loginFunc;    public AbstractLoginProcessor(LoginFunc loginFunc) {        this.loginFunc = loginFunc;    }    public abstract boolean loginExecute(String name, String pwd, String type);}

创建ThirdPartLogin

代码如下(示例):

package com.example.designdemo.implementor.abstractlogin;import com.example.designdemo.implementor.LoginFunc;public class ThirdPartLogin extends AbstractLoginProcessor{    public ThirdPartLogin(LoginFunc loginFunc) {        super(loginFunc);    }    @Override    public boolean loginExecute(String name, String pwd, String type) {        return super.loginFunc.login(name, pwd, type);    }}

点击全文阅读


本文链接:http://m.zhangshiyu.com/post/47244.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 斗罗v:从逮到千仞雪偷窃开始成神完结版_陈晨胡列娜大反击_小说后续在线阅读_无删减免费完结_
  • 末世开火车,顺便捡了个机械神格高分神作_李昂诺亚独家首发_小说后续在线阅读_无删减免费完结_
  • 云清免费看_云舒小姐太后校园甜文_小说后续在线阅读_无删减免费完结_
  • 军训前,童养媳拿我的病历本给心上人叠纸飞机后,我退婚了完结爽文_杨鹤童养媳阿鹤一口气完结_小说后续在线阅读_无删减免费完结_
  • 未婚夫女兄弟把婚车改成宠物灵车,我反手让她的宾利变破烂最新阅读_魏成鸣乔诗诗林书妍小编推荐_小说后续在线阅读_无删减免费完结_
  • 军训当天男友为校花虐功勋犬,重生后我杀疯了潜力榜_顾野杜璇闻言大结局_小说后续在线阅读_无删减免费完结_
  • 天塌了!大佬们全被我捡回家了阿昭,小白,李惊雪小说整本+后续(阿昭,小白,李惊雪)清爽版阅读
  • 重生八零,我笑看真千金用土气布料卖港商免费阅读_妹妹姜雅沈俊爆款_小说后续在线阅读_无删减免费完结_
  • 秦昭:+后续人物讨喜无套路全集手握一把刀,砍翻万道!
  • 狸奴抓伤阿娘后,我和爹提议换个娘后续_阿爹阿娘宁王最新阅读_小说后续在线阅读_无删减免费完结_
  • 盛夏没有晴天小说(阮苏梨,傅屿安,宋颖)小说结尾+隐藏篇章(盛夏没有晴天阮苏梨,傅屿安,宋颖)畅享阅读
  • 全书浏览天降好运?村西头疯婆子是神医!(李萍萍周大孙月娘)_天降好运?村西头疯婆子是神医!(李萍萍周大孙月娘)全书结局

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1