private static Calendar createCalendar(TimeZone zone,Locale aLocale) { CalendarProvider provider = LocaleProviderAdapter.getAdapter(CalendarProvider.class, aLocale) .getCalendarProvider(); if (provider != null) { try { return provider.getInstance(zon…
三种工厂模式的详解: 简单工厂模式: 适用场景:工厂类负责创建的对象较少,客户端只关心传入工厂类的参数,对于如何创建对象的逻辑不关心 缺点:如果要新加产品,就需要修改工厂类的判断逻辑,违背软件设计中的开闭原则,且产品类多的话,就会使得简单工厂类比较复杂 在jdk源码中的具体实例(注意看代码中的中文注释) private static Calendar createCalendar(TimeZone zone,Locale aLocale) { CalendarProvider provider…
感谢慕课geely老师的设计模式课程,本套设计模式的所有内容均以课程为参考. 前面的软件设计七大原则,目前只有理论这块,因为最近参与项目重构,暂时没有时间把Coding的代码按照设计思路一点点写出来.本周周末会花时间整理出来,然后现在想的是白天更新一点并发编程,晚上回家学习设计模式.非科班出身,脑子也比较笨.博文都是自己根据学习的时候所想的思路,如果能有帮到各位的地方,那十分荣幸.如果有欠缺之处,希望能在评论中指出一起进步.好啦,开始正文了. 本套设计模式的博文,包含各种设计模式的定义.类型.适…
转载:https://mp.weixin.qq.com/s/h88UxB9F2MkTbHqck3KQiQ 一.结构性模式: 1.适配器模式: 常用于将一个新接口适配旧接口 肥朝小声逼逼:在我们业务代码中经常有新旧接口适配需求,可以采用该模式. 2.桥接模式: 将抽象和抽象的具体实现进行解耦,这样可以使得抽象和抽象的具体实现可以独立进行变化. 肥朝小声逼逼:这个模式,其实我们每天都在用到,但是你可能却浑然不知.只要你用到面向接口编程,其实都是在用桥接模式. 3.组合模式 让客户端看起来在处理单个对…
Java容器类库中的Map接口(java\util\Map.java)中有一个Entry接口(java\util\Map.java),其中有几个接口方法用到了类和类的按位与操作,即类和类之间有 & 操作符,后面是一个lambda表达式,如下图: 源码如下: public static <K extends Comparable<? super K>, V> Comparator<Map.Entry<K,V>> comparingByKey() { r…
结构型模式: 适配器模式: 用来把一个接口转化成另一个接口. java.util.Arrays#asList() javax.swing.JTable(TableModel) java.io.InputStreamReader(InputStream) java.io.OutputStreamWriter(OutputStream) javax.xml.bind.annotation.adapters.XmlAdapter#marshal() javax.xml.bind.annotation.…
public abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable 枚举类存在于java.lang包中,是一个抽象类,实现了Comparable<E>和Serializable接口,说明,枚举实例可以进行比较,实现Seriaalizable接口的目的是在反序列化时不会重新创建一个新的对象. Enum是所有java程序中定义的枚举类的公共基类,更多关于枚举的信…
public final class Class<T> implements java.io.Serializable, GenericDeclaration, Type, AnnotatedElement Class类的实例表示在java运行时的类和接口.枚举是一种类,注解是一种接口.所有的数组也有相应的类,具有相同类型元素和长度的数组共享一个类.原始数据类型(boolean, byte, char, int, long, float和double)和关键字void也有相应的类. Class…
简介 大家好,我是彤哥,今天我想和大家再聊聊JDK源码的几个问题: 为什么要看JDK源码 JDK源码的阅读顺序 JDK源码的阅读方法 为什么要看JDK源码 一,JDK源码是其它所有源码的基础,看懂了JDK源码再看其它的源码会达到事半功倍的效果. 二,JDK源码中包含大量的数据结构知识,是学习数据结构很好的资料,比如,链表.队列.散列表.红黑树.跳表.桶.堆.双端队列等. 三.JDK源码中包含大量的设计模式,是学习设计模式很好的资料,比如,适配器模式.模板方法模式.装饰器模式.迭代器模式.代理模式…
从网络上找的设计模式, 很全面,只要把UML类图看懂了, 照着类图将代码实现是很容易的事情. 步骤: 先看懂类图, 然后将代码实现, 之后再看文字 http://c.biancheng.net/design_pattern/ https://www.runoob.com/design-pattern/abstract-factory-pattern.html 7大设计原则: 1: 单一职责原则: 类应该只有一个职责,或者功能 2: 接口隔离原则: 一个类不应该依赖与他不相关,不需要的接口, 一个…