当前位置: 首页 > news >正文

网站没有流量怎么回事怎样在各大网站做推广

网站没有流量怎么回事,怎样在各大网站做推广,搜索引擎关键词推广,建网站一般用什么工具文章目录 简介问题解决代码核心改进点#xff1a; 总结 简介 责任链是一种行为设计模式#xff0c;允许你把请求沿着处理者链进行发送。收到请求后#xff0c;每个处理者均可对请求进行处理#xff0c;或将其传递给链上的下个处理者。 问题 假如你正在开发一个订单系统。… 文章目录 简介问题解决代码核心改进点 总结 简介 责任链是一种行为设计模式允许你把请求沿着处理者链进行发送。收到请求后每个处理者均可对请求进行处理或将其传递给链上的下个处理者。 问题 假如你正在开发一个订单系统。 你希望限制系统访问只允许认证用户创建订单。 而管理员拥有所有订单的完全访问权限。 按照一般的开发思路你会依次执行这些检查。 只要接收到包含用户凭据的请求系统就可以尝试认证。 如果认证失败 那就没有必要再进行后续检查了。如下图。 接着关于认证检查的需求越来越多。比如为了不让原始数据直接传递到订单系统需要在认证之后清理请求中的数据比如为了对暴力密码破解或者爬虫请求进行限流又需要在认证之后增加过滤来自同一 IP 地址的重复请求逻辑比如为了提高系统响应速度降低系统负载又需要在请求发送给系统之前检查有没有缓存结果如果没有才会把请求发送给系统。如下图这部分逻辑就会越来越多越来越混乱。 而且修改某个检查步骤可能也会影响其他的检查步骤。 尤其是当你希望复用这些检查步骤来保护其他系统时你只能复制部分代码 因为这些系统只需要部分检查步骤。 解决 与许多其他行为设计模式一样 责任链会把 特定行为转换成 叫做处理者的独立对象。 在上面示例里 每个检查步骤都可以被抽取成仅有单个方法的类 并执行检查操作。 请求和对应数据会被作为参数传递给这个方法。 这个模式建议你把这些处理者连成一条链。 链上的每个处理者都有一个成员变量来保存对于下一个处理者的引用。 除了处理请求外 处理者还负责沿着链传递请求。 请求会在链上移动 直到所有处理者都有机会对他进行处理。 更重要的是 处理者可以决定不再沿着链传递请求 这就可以高效地取消所有后面的处理步骤。 在我们的订单系统示例中 处理者会在进行请求处理工作后决定要不要继续沿着链传递请求。 如果请求中包含正确的数据 所有处理者都会执行自己的主要行为 无论这个行为是身份验证还是数据缓存。 不过还有一种稍微不同的方式 也是更经典一种 那就是处理者接收到请求后自己决定是否能够对其进行处理。 如果自己能够处理 处理者就不再继续传递请求。 因此在这种情况下 每个请求要么最多有一个处理者进行处理 要么没有任何处理者进行处理。 在处理图形用户界面元素栈中的事件时 这种方式非常常见。另外其实很多设计模式都是从很早用Java写客户端界面引出的解决方案。 代码 // Handler接口定义处理契约 public interface Handler {void handle(Request request) throws AuthException; }// BaseHandler实现链式传递逻辑 public abstract class BaseHandler implements Handler {private Handler next;public BaseHandler setNext(Handler next) {this.next next;return this;}protected void passToNext(Request request) throws AuthException {if (next ! null) next.handle(request); // 核心链式调用逻辑} }// 具体处理者1用户认证 class UserAuthHandler extends BaseHandler {Overridepublic void handle(Request request) throws AuthException {if (!validateUser(request.getUserId())) {throw new AuthException(用户未登录);}passToNext(request); // 验证成功移交后续处理} }// 具体处理者2权限校验 class PermissionHandler extends BaseHandler {Override public void handle(Request request) throws AuthException {if (!checkAdminPermission(request.getUserId())) {throw new PermissionException(权限不足);}passToNext(request);} }// Client动态组合处理链 public class OrderService {private Handler chain;public OrderService() {this.chain new UserAuthHandler().setNext(new PermissionHandler()); // 灵活配置处理顺序}public void createOrder(Request request) {chain.handle(request); // 统一入口触发处理链// 执行业务逻辑...} } 核心改进点 解耦检查逻辑每个安全检查独立成类通过setNext组合链式结构动态扩展性新增日志检查仅需创建LogHandler并插入链中任意位置复用性增强在PaymentService中可重用UserAuthHandler而不需要重复验证代码 总结 (Handler)声明了所有具体处理者的通用接口。这个接口通常只包含单个方法用于请求处理但有时它还会包含一个设置链上 下一个处理者 的方法。(Base Handler)是一个可选的类你可以把所有处理者共用的样本代码放在里面。 通常情况下这个类里定义了一个保存下个处理者引用的成员变量。客户端可以把下个处理者传递给上个处理者的构造函数或用setter方法 来创建链。这个类还可以实现默认的处理行为: 比如确定下个处理者存在后再把请求传递给它。(Concrete Handlers)包含处理请求的实际代码。每 个处理者接收到请求后都必须决定要不要处理以及要不要沿 着链传递请求。 处理者通常是独立并且不可变的需要通过构造函数一次性地获得 所有必要的数据。(Client) 可根据程序逻辑一次性或者动态地生成链。 需要注意一下请求可以发送给链上的任意一个处理者不一定是第一个处理者。
http://www.zqtcl.cn/news/190476/

相关文章:

  • 网站宽度 像素长沙电商运营培训
  • 备案上个人网站和企业网站的区别app开发多少钱一个
  • 有限公司网站建设 中企动力佛山培训机构招生方案
  • 扫黄打非网站建设专业的高端网站制作公司
  • 做自媒体发视频用哪些网站江西网站建设哪家好
  • wordpress用户列表南宁百度seo排名优化
  • 做网站时如何写接口文档上海网站设计建设公司
  • 网站小图标怎么制作平面设计素材网站推荐
  • 多元网络兰州网站建设惠州网页建站模板
  • 网站建设中首页模板下载网页制作模板保存
  • 宁夏做网站的江苏网站建设的案例展示
  • 网站功能需求文档如何免费域名注册
  • 推广网站的软件包头移动的网站建设
  • 自己制作音乐的软件免费上海seo怎么优化
  • 学vue可以做pc网站网站站长统计怎么弄
  • 做物流的可以在那些网站找客户大淘客网站建设app
  • 石家庄兼职做网站dedecms做视频网站
  • 优化公司怎么优化网站的网站 意义
  • 唯品会一家专门做特卖的网站手机版招聘网站开发技术维护
  • 做短租哪个网站wordpress 4.7
  • 网站换空间 site网站域没到期不能续费吗
  • 找别人做网站要考虑哪些网站导航条设计欣赏
  • mvc网站开发实例wordpress雪人主题2.0
  • 红色好看的网站中山网站建设工作室
  • 如何做喊单网站flask公司网站开发
  • 简单个人网站制作流程自己怎么做卖服装的网站
  • 网站开发公司创业做洁净的网站
  • 要建一个优惠卷网站怎么做企业开发小程序公司
  • 汕尾英文网站建设企业qq手机版
  • 重庆医院门户网站建设做百度网站电话号码