JAVA
Tyanqin
生活是一种态度!
展开
-
迭代器模式(Iterator)
场景:提供一个可以遍历对象的方式,又称为:游标cursor模式聚合对象:存储数据迭代器:遍历数据 interface MyIterator{ void first();//将游标指向第一个元素 void next(); //将游标指向下一个元素 boolean hasNext();//判断是否存在下一个元素 boolean isFirst(); bo...翻译 2018-03-18 15:32:11 · 152 阅读 · 0 评论 -
备忘录模式(memento)
核心 就是保存某个对象内部状态的拷贝,这样以后就可以将对象恢复到原先状态结构: 源发器类(Originator)备忘录类(Memento)负责人类(CareTake) publicclass Client { publicstaticvoid main(String[] args) { CareTaker taker = new CareTaker(...翻译 2018-03-19 12:26:39 · 150 阅读 · 0 评论 -
命令模式(command)
Command抽象命令类 ConcreteCommand具体命令类 Invoker调用者/请求者 请求的发送者,它通过命令对象来执行请求。一个调用者并不需要在设计时确定其接收者,因此它只与抽象命令类之间存在关联。在程序运行时,将调用命令对象execute(),间接调用接收者的相关操作。 Receiver接收者 接收者执行与请求相关操作,具体实现对请求的业务处理。 ...翻译 2018-03-19 12:27:28 · 164 阅读 · 0 评论 -
JAVA动态编译
JAVA 6.0引入了动态编译机制 动态编译应用场景: ——可以做一个浏览器编写JAVA代码,上传服务器编译和运行的在线评测系统。 ——服务器动态加载某些类文件进行编译 动态编译的两种做法: ——通过Runtime调用javac,启动新的进程去操作 Runtime run = Runtime.getRuntime(); Process p...原创 2018-03-13 14:34:14 · 253 阅读 · 0 评论 -
反射操作泛型
ParameterizedType:表示一种参数化的类型,比如Collection<String> GenericArrayType:表示一种元素类型是参数化类型或者类型变量的数组类型。 TypeVariable:是各种类型变量的公共接口。 WildcardType:代表一种通配符类型表达式,比如?,?extends,Number,?super Integer【Wildcar...原创 2018-03-13 14:36:10 · 197 阅读 · 0 评论 -
享元模式(FlyWeight)
场景: 内存属于稀缺资源,不要随便浪费。如果有很多个完全相同或相似的对象,我们可以通过享元模式,节省内存。核心:享元模式以共享的方式高效地支持大量细粒度对象的重用。享元对象能做到共享的关键是区分了内部状态和外部状态。 内部状态:可以共享,不会随便环境变化而变化 外部状态:不可以共享,会随环境变化而变化。享元模式实现:FlyweightFactory享元工厂类 创建并管理享元对象,享元池...原创 2018-03-18 12:47:59 · 157 阅读 · 0 评论 -
单例模式
单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中,应用该模式的类一个类只有一个实例。即一个类只有一个对象实例 饿汉模式:加载快,线程安全,开销大。publicclass Singleton { privatestatic Singleton instance = new Singleton(); privat...原创 2018-03-15 13:25:26 · 162 阅读 · 1 评论 -
建造者模式
分离了对象组建的单独构造,从而可以构造出复杂的对象,这个模式造用于:某个对象的构建过程复杂的情况下使用。由于实现了构造和装配的解耦。不同的构造器,相同的装配,也可以做出不同的对象;相同的构造器,不同的装配顺序也可以做出不同的对象。也就是实现了构建算法、装配逄法的解耦,实现了更好的复用。建造班级,创建学生与老师两个类publicclass Student { private String n...原创 2018-03-15 18:06:08 · 115 阅读 · 0 评论 -
原型模式(prototype)
原型模式(prototype)通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。就是java的克隆技术,以某个对象为原型,复制出新的对象。显然新的对象具备原型对象的特点。优势:效率高(直接克隆,避免了重新执行构造过程步聚)。克隆类似于new,但是不同于new。New创建新的对象属性采用的默认值。克隆出的对象属性值的原型对象相同。并且克隆出的新对象改变不会影响原型对象。然后...原创 2018-03-15 20:45:57 · 157 阅读 · 0 评论 -
适配器模式
适配器模式什么是适配器模式?将一个接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。模式中的角色: 目标接口(Target):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。 需要适配的类(Adaaptee):需要适配的类或者适配者类。 适配器(Adapter):通过包装一个需要适配的对象,把接口转换成...原创 2018-03-15 21:59:38 · 117 阅读 · 0 评论 -
代理模式(Proxy pattern)
代理模式(Proxy pattern)核心作用:通过代理,控制对对象的访问。可以详细控制访问某个(某类)对象方法,在调用这个方法前做前置处理,调用这个方法后做后置处理。(即:AOP的微观实现)Aop(Aspect Oriented Programming面向切面编程)核心实现机制。核心角色:抽象角色:定义代理角色和真实角色的公共对外方法。真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代...原创 2018-03-16 19:20:46 · 116 阅读 · 0 评论 -
桥接模式
桥接模式观察下图,如果增加一个电脑类型则要增加电脑品牌下面的类。如果增加一个电脑品牌,也要增加电脑类型的类。违反了单一职责原则:一个类:联想笔记本,有两个引起这个类变化的原因。多层继承结构 interface Computer{ void sale(); } class Desktop implements Computer{ publicvoid sale() { ...原创 2018-03-17 17:28:26 · 119 阅读 · 0 评论 -
组合模式(composite)
组合模式的使用场景:把部分和整体的关系用树状的结构来表示,从而使客户可以使用统一的方式处理部分对象和整体对象。组合模式核心:抽象构件(Component)角色:定义了叶子和容器的共同点叶子(Leaf)构件角色:无子节点容器(Composite)构件角色:有容器特征,可以包含子节点。组合模式工作流程分析:组合模式为处理树形结构提供了完美的解决方案,描述了如何将容器和叶子进行递归组合,使得用户在使用时...原创 2018-03-17 18:54:56 · 119 阅读 · 0 评论 -
外观模式(Facade)
迪米特法则(最少知识法则)一个软件实体应当尽可能少的与其它实体发生相互作用。开发中应用场景:应用频率很高。各种技术框架中,都有外观模式的使用。 interface IRegister { void register(); } class Bank implements IRegister { publicvoid register() { Sys...原创 2018-03-18 11:30:08 · 154 阅读 · 1 评论 -
swagger
swgger转载 2018-09-17 14:11:34 · 206 阅读 · 0 评论