
GOF23
iokay.cn
90后JAVA攻城狮一个,喜欢编程,有点小geek
展开
-
GOF23-单例模式
单例模式:在一个应用中一个类对应的对象只有一个。常见的单例应用:spring中默认bean为单例,JavaWeb中Application对象。在程序中有些类只需要一个对象,比如全局配置信息,公共服务对象。 单例模式能减少资源的浪费,减少程序配置的复杂度。学习了下各个实现单例的思想。理想的单例默认应有的特性:线程安全,多线程调用效率高,能延迟加载。一、单例模式实现方式1.恶汉式...原创 2019-02-28 15:45:58 · 707 阅读 · 0 评论 -
GOF23-原型模式
原型模式:以现有对象为原型,克隆新的一模一样的对象。减少通过构造方法新建对象时分配属性、方法的权限时间。原型方法实现方式:实现Cloneable接口(标记接口)和Object.clone()方法、序列化实现复制。一、实现Cloneable接口(标记接口)和Object.clone()方法(在破解单例模式中使用过)通过java提供的Cloneable接口方式实现原型模式,分为浅克隆和深克...原创 2019-03-05 10:28:54 · 791 阅读 · 0 评论 -
GOF23-工厂模式
引申复习面向对象的设计的六大原则,一些设计模式中就体现了这类原则 单一职责:一个合理的类功能应该只有一个,消除耦合减少需求变化对代码的修改 开闭原则:一个类应该对扩展开启,对修改关闭。降低程序模块之间的耦合度,增加扩展性 里氏替换原则:子类应该能替换基类。 能够很好的实现功能的调整和升级,并且不影响客户端调用 依赖倒换原则:设计依赖于抽象而不是依赖于具体化。 ...原创 2019-03-01 17:51:11 · 654 阅读 · 0 评论 -
GOF23-适配器模式
适配器模式(wrapper包装者模式):将一个接口转换成用户所需要的接口,使相互不兼容的接口一起工作。例子:笔记本、笔记本电源适配器、交流电。 在各个国家的交流电有些是不相同的,如220V、110V,而笔记本电脑充电电压基本为20V(以我的Y7000为例),是不能直接接入充电的,因此笔记本都配置了一个电源适配器。这就用到了适配器模式适配器模式中常用的角色Target(目标角色,笔记本...原创 2019-03-05 17:08:54 · 845 阅读 · 0 评论 -
GOF23-建造者模式
建造者模式定义:建造者模式分离了对象子组件的构造(由builder构造)和装配(由director装配)。从而可以构造出复杂的对象。适用环境:某个对象构建过程比较复杂。实现对象的创建和装配解耦,让客户端使用者只需要关心自己得到的产品而不是关心产品时怎样具体产生的(这一点类似工厂模式。)一、工厂模式与建造者模式区别及其联系1.区别 工厂模式:产生的一个产品是一个整体。 比...原创 2019-03-03 14:29:11 · 717 阅读 · 0 评论 -
GOF23-代理模式
一、初识代理模式代理模式:控制目标对象的访问。可以详细的控制方法的前置,后置等附加功能。由代理对象引用或者调用目标类。客户端不直接与目标类联系。举个例子:在Spring aop中事物管理就是一个典型的代理例子,当把单个数据源事物交给spring管理时,我们对数据库的增删改操作时不会写数据库事物的开启、提交和回滚。当我们获取一个Service时是获取的一个代理对象,使用方法时,会做一个前置通...原创 2019-03-06 18:28:38 · 805 阅读 · 0 评论 -
GOF23-桥接模式
一、桥接模式定义:将抽象化和实现化脱耦,使得二者可以可以独立的变化。其中有三个关键字抽象化、实现化、脱耦。抽象化:一组对象能够有相同的概念联系,那么我们可以使用一个类来描述,如果一些类具有相同的概念联系,那么我们可以使用一个抽象类来描述这就是抽象化,如果更复杂我们可以使用继承用父子来描述。 实现化:一个类的实例就是这个类的实现化,也是这个类的父类的实现化。 脱耦:强耦合在编译时就确...原创 2019-03-12 10:43:52 · 718 阅读 · 0 评论