`
文章列表
<beanid="jmxExporter"class="org.springframework.jmx.export.MBeanExporter"> <propertyname="beans"> <map> <entrykey="Hibernate:name=statistics"> <reflocal="statisticsBean"/> </entry> </map> </propert ...
开闭原则   1、定义 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。   2、问题由来 在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能 ...
迪米特法则   1、定义 一个对象应该对其他对象保持最少的了解。   2、问题由来 类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。   3、解决方案 尽量降低类与类之间的耦合。 ...
接口隔离原则   1、定义 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。   2、问题由来 类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类 ...
依赖倒置原则   1、定义 高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。   2、问题由来        类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。   3、解决方案        将类A修改为依赖接口I,类B和类C各自实现接口I,类A通过接口I间接与类B或者类C发生联系,则会大大降低修改类A的几率。   4、详解        依赖倒置原则基于这样一个事实: ...
里氏替换原则 肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。   1、定义如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。   2、问题由来 有一功能P1,由类A完成。现需要将功能P1进行扩展,扩展后的功能为P,其中P由原有功能P1与新功能P2组成。新功能P由类A的子类B来完成,则子类B在 ...
单一职责原则 1、定义 不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。   2、问题由来 类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。   3、解决方案 遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责P1发生故障风险。   4、详解         说到单一职责原则,很多人都会不屑一顾。因为它太简单了。稍有经验的程序员即使从来没有读过 ...
享元模式 1、定义 享元模式(FlyWeight),运用共享技术有效的支持大量细粒度的对象。   2、结构图    单纯享元模式所涉及到的角色如下:   ●  抽象享元(Flyweight)角色 :给出一个抽象接口,以规定出所有具体享元角色需要实现的方法。   ●  具体享元(ConcreteFlyweight)角色:实现抽象享元角色所规定出的接口。如果有内蕴状态的话,必须负责为内蕴状态提供存储空间。   ●  享元工厂(FlyweightFactory)角色 :本角色负责创建和管理享元角色。本角色必须保证享元对象可以被系统适当地共享。当一个客户端对象调用一个享元对象的时候 ...
门面模式(facade) 1、门面模式 门面模式是对象的结构模式,是通过一个代理一些复杂而又繁琐的操作,客户端只需调用改类中的方法,不必关心后台复杂的操作。   2、结构   在结构图中包含两种角色 ‘门面角色:客户端可以通过门面角色与各个子系统进行通信。 子系统角色:可以同时有一个或者多个  3、代码 (1)电灯类 public class Light { public void turnOn(){ System.out.println("开启灯..."); } public void turnOff(){ Syste ...
观察者模式 1、定义 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 2、结构   3、代码 (1) ...
1、防止生产客户端程序错误-frontend jaxws21wsdl2java -p client -d stub -frontend jaxws21 -client url wsdl2java -d d:/ -keep -frontend jaxws21 http://localhost:8888/ms?wsdl
1、查询地址1        http://search.maven.org/#browse 2、查询地址2        http://mvnrepository.com/
 策略模式 1、定义 策略模式,又叫算法簇模式,就是定义了不同的算法族,并且之间可以互相替换,此模式让算法的变化独立于使用算法的客户。   2、结构图   3、代码 (1)策略接口 public interface IStrategy { public int calculate(int a, int b); } (2)加法算法实现IStrategy   public class AddStrategy implements IStrategy { @Override public int calculate(int a, int b) ...
1、jps 虚拟机进程状况工具 语法  jsp [option] [hostid] 选项 作用 -q 只显示lvmid -m 输出虚拟机启用时传入main方法参数 -l 输出主类全名 -v 输出jvm参数   注意: 如果在linux环境中jps命令不能输出vmid数据(jdk1.6.0.23/24 bug),需要修改catalina.sh文件 if [ -z "$CATALINA_TMPDIR" ] ; then # Define the java.io.tmpdir to use for Catalina # CA ...
1、修改/etc/sysconfig/network文件中的HOSTNAME HOSTNAME对应的值必须是/etc/hosts中本地ip对应的其中一个值   2、修改/etc/hosts文件 将127.0.01改为局域网ip地址   3、添加jmx访问用户名密码 在jdk/jre/lib/management文件中根据jmxremote.password.template创建jmxremote.password文件,将最后两行的#号删除。   4、修改catalina.sh文件 在catalina.sh文件中添加JAVA_OPTS="-server -Xms7 ...
Global site tag (gtag.js) - Google Analytics