- 浏览: 2526 次
- 性别:
- 来自: 北京
最新评论
文章列表
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命令设置成环境变量。
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 ...