`
文章列表
桥接模式就是把事物和其具体实现分开,使他们可以各自独立的变化。桥接的用意是:将抽象化与实现化解耦,使得二者可以独立变化。 像我们常用的JDBC桥DriverManager一样,JDBC进行连接数据库的时候,在各个数据库之间进行切换,基本不需要动太多的代码,甚至丝毫不用动。 原因就是JDBC提供统一接口,每个数据库提供各自的实现,用一个叫做数据库驱动的程序来桥接就行了。 ▼先定义接口: public interface Sourceable { public void method(); }   ▼定义两个实现类: public class SourceSub1 impleme ...
外观模式是为了解决类与类之家的依赖关系的,像spring一样,可以将类和类之间的关系配置到配置文件中, 而外观模式就是将他们的关系放在一个Facade类中,降低了类类之间的耦合度,该模式中没有涉及到接口。 我们以一个计算机的启动过程为例: ◆CPU类: public class CPU {   public void startup(){ System.out.println("cpu startup!"); }   public void shutdown(){ System.out.println("cpu shutdown!" ...
其实每个模式名称就表明了该模式的作用,代理模式就是多一个代理类出来,替原对象进行一些操作。 比如我们在租房子的时候回去找中介,为什么呢?因为你对该地区房屋的信息掌握的不够全面,希望找一个更熟悉的人去帮 ...
顾名思义,装饰模式就是给一个对象增加一些新的功能,而且是动态的,要求装饰对象和被装饰对象实现同一个接口,装饰对象持有被装饰对象的实例 Source类是被装饰类,Decorator类是一个装饰类,可以为Source类动态的添加一些功能 ★接口Sourceable: public interface Sourceable { public void method(); }   ★Source被装饰类: public class Source implements Sourceable {     @Override public void method() { Syste ...
适配器模式是其他结构型模式的起源。         (1)适配器模式                类的适配器模式                  ↓ (2)装饰模式←对象的适配器模式→(5)桥接模式   ↓               ↓            ↓ (3)代理模式  接口的适配器模式        (6)组合模式 ↓                            ↓ (4)外观模式                (   7)享元模式     适配器模式将某个类的接口转换成客户端期望的另一个接口表示,目的是消除由于接口不匹配所造成的类的兼 ...
工厂类模式提供的是创建单个类的模式,而建造者模式则是将各种产品集中起来进行管理,用来创建复合对象,所谓复合对象就是指某个类具有不同的属性。 其实建造者模式就是前面抽象工厂模式和最后的Test结合起来得到的。 ★产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量: class Product { private String name; private String type; public void showProduct(){ System.out.println("名称:"+name); System.out.pri ...
单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。这样的模式有几个好处: a.某些类创建比较频繁,对于一些大型的对象,这是一笔很大的系统开销 b.省去了new操作符,降低了系统内存的使用频率,减轻了GC压力 c.有些类如交易所的核心交易引擎,控制着交易流程,如果该类可以创建多个的话,系统完全乱了。(比如一个军队出现了多个司令员同时指挥,肯定会乱成一团), 所以使用单例模式,才能保证核心交易服务器独立控制整个流程。     ▼简单的单例实现类: public class Singleton {   / ...
一、设计模式分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模 ...
  当apache2的 httpd-vhosts.conf 设置的文件权限 与 .htaccess 的rewrite规则相冲突时,会报 403错误       <VirtualHost *:80> ServerName y2.com #DocumentRoot "/Library/WebServer/Documents/yii2-ace-admin/backend/web/" DocumentRoot "/Users/mrchow/Sites/yii2-ace-admin/backend/web/" ...

mac下配置mysql

。  mysql在Mac OS X下的默认安装路径是/usr/local/mysql/   mac版mysql与Windows版的mysql配置文件扩展名不同:  mac下: my.cnf windows下: my.ini 这里介绍MAC下安装Mysql找不到my.cnf配置文件的问题,并自己创建my.cnf文件 1.在 /etc 新建 my.cnf 文件 sudo vim my.cnf  2.将如下配置内容写入到文件中 ……(参考 /usr/local/mysql/support-files/my-default.cnf)   3.保存文件 如果出现以下提示,则先强 ...

RESTful架构

  名称:REST,即Representational State Transfer的缩写。我对这个词组的翻译是"表现层状态转化",REST的名称中,省略了主语,"表现层"其实指的是"资源"(Resources)的"表现层"。 如果一个架构符合REST原则,就称它为RESTful架构。   资源:就是网络上的一个实体,或者说是网络上的一个具体信息。每种资源对应一个特定的URI。要获取这个资源,访问它的URI就可以。   表现层:"资源"是一种信息实体,它可以有多种外在表现形式。我们把 ...
  引入项目需要的AOP包 <!--aop--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>4.1.7.RELEASE</version> </dependency> <dependency> <groupId>a ...
  元注解:     1.@Target,    2.@Retention,    3.@Documented,    4.@Inherited  这些类型和它们所支持的类在java.lang.annotation包中可以找到。 @Target:   取值(ElementType)有:       1.CONSTRUCTOR:用于描述构造器    2.FIELD:用于描述域    3.LOCAL_VARIABLE:用于描述局部变量    4.METHOD:用于描述方法    5.PACKAGE:用于描述包 
1.1.单元测试是什么 写代码免不了要做测试,测试有很多种,对于java来说,最初级的就是写个main函数运行一下看看结果,高级的可以用各种高大上的复杂的测试系统。每种测试都有它的关注点,比如测试功能是不是正确,或者运行状态稳不稳定,或者能承受多少负载压力,等等。 那么所谓的单元测试是什么?这里直接引用维基百科上的词条说明: 单元测试(又称为模块测试, Unit Testing)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。在过程化编程中,一个单元就是单个程序、函数、过程等;对于面向对象编程,最小单元就是方法,包括基类(超类)、抽象 ...
org/projectlombok/lombok/1.14.8/lombok-1.14.8.jar!/lombok   lombok.Getter lombok.Setter lombok.Data lombok.ToString   lombok.extern.log4j.Log4j lombok.extern.slf4j.Slf4j   还有很多,自己挖掘   <dependency> <groupId>org.projectlombok</groupId> <artifactId> ...
Global site tag (gtag.js) - Google Analytics