`
文章列表
1.为了统一防止重复提交的filter重写   package filter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; im ...
开闭原则:良好的设计应该让软件易于扩展,同时拒绝修改。一般通过新增代码来实现功能,而不只是修改原来的代码。   为了保证不修改代码,要尽量合理划分组件,保证低级组件只依赖高级组件。组件之间是单向依赖。 这样低级组件修改,不会影响高级组件。 如下图组件分为presenter - > controller - > interactor.其中interator为最高组件 组件之间是单向依赖,靠接口<I>或是数据结构<DS>来关联,通过FinancialReportRequester接口来隐藏信息,让controller不过度依赖Interactor的内 ...
SRP:单一职责原则        软件模块都有且只有一个需要被改变的理由。它不仅仅是让每一个模块只做一件事情,而是让模块只对某一类行为者负责。   比如:员工employee的打卡记录,财务部要使用它来计算工资,人事部门用他生成考勤记录报表。 如果把 calculatePay,reportKaoqin方法复用成一个方法就不对了,虽然都共用一套打卡记录,也可能计算的逻辑也一样,但是使用记录的人不一样,目的也不一样,方法就不能共用。   使用单一职责(SRP)可以根据需求来分组,然后调整这些分组的依赖关系(DIP)
   SOLID原则告诉如何把数据和函数组织成类,以及如何把这些类链接成程序。 SRP:单一职责原则        模块都有且只有一个需要被改变的理由,不是只是每一个模块只做一件事情,而是只对某一类行为者负责 OCP:开闭原则原则       如果系统想要更容易改变,就要允许新增代码来修改系统行为,而非只能靠修改原来代码 LSP:里式替换       遵守同一约定,来替换组件 ISP:接口隔离      避免不必要的依赖 DIP:依赖反转原则      底层细节的代码依赖于高层的代码
所有的系统都是一组策略语句的集合。 一般分为三种策略:1.描述计算业务的逻辑。2.描述计算报告的格式。3.描述校验输入数据。 然后根据这些策略进行分组,其中变更原因,时间,层次相同的策略分到同一组件。   架构的目的是把组件重排组合成为一个有向无环图。其中每一个节点就是一个组件,每一天单向链接代表组件之间的依赖关系。   良好的设计,依赖关系的方向通常取决于它们的所关联的组件层次,一般来说,底层组件依赖高层组件。   层次是按照“输入与输出之间的距离”定义的,距离输入/输出越远,层次越高.   比如加密程序:         一般构成是:输入-加密-输出. 所以加密是层 ...
redis 哨兵模式 redis-4.0.8 一主两从,3哨兵的构建方式: 搭建是在一台虚拟主机上的,使用的不同端口:    主节点:192.168.1.235:6379  从节点1:192.168.1.235:6380 从节点2:192.168.1.235:6381 哨兵1:192.168.1.235:26379 哨兵2:192.168.1.235:26380 哨兵3:192.168.1.235:26381   1.主节点:192.168.1.235:6379配置文件:   #主redis配置 bind 0.0.0.0 protected-mode no p ...

mvn知识

    博客分类:
  • mvn
安装完mvn,一定要把mvn命令设置成环境变量。 1.设置M2_HOME=E:\mvn\apache-maven-3.0.5 2.path=%path%;%M2_HOME%   mvn要想指定本地仓库的位置的配置: 1.把%M2_HOME%/conf/下的setting.xml文件 copy 到 C:\Users\{username}\.m2 下 2.在setting.xml中settings节点下添加 <localRepository>yourpath</localRepository>   设置代理的要在settings中加: <prox ...
Global site tag (gtag.js) - Google Analytics