Home
malinkang
Cancel

适配器模式

适配器模式将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 适配器模式可以通过创建适配器进行接口转换,让不兼容的接口变成兼容。这可以让客户从实现的接口解耦。如果在一段时间之后,我们想要改变接口,适配器可以将改变的部分封装起来,客户就不必为了应对不同的接口而每次跟着修改。

装饰者模式

装饰者模式动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。

策略模式

模拟鸭子应用 模拟鸭子游戏SimUDuck。游戏中会出现各种鸭子,一边游泳戏水,一边呱呱叫。此系统内部设计使用了标准的OO技术。设计了一个鸭子超类(Superclass),并让各种鸭子继承此超类。 新需求让鸭子能飞,在超类中添加fly()方法,但是,并非Duck所有的子类都会飞,比如橡皮鸭,在超类中添加新的行为,会使得某些并不适合该行为的子类也具有该行为。 利用继承将橡皮鸭的fly...

Java动态代理

代理是基本的设计模式之一,它是你为了提供额外的或不同的操作,而插入的用来代替”实际“对象的对象。这些操作通常涉及与“实际”对象的通信,因此代理通常充当着中间人的角色。下面是一个用来展示代理结构的简单示例: interface Interface { void doSomething(); void somethingElse(String arg); } //实现In...

Android Studio常用插件

ButterKnifeZelezny android-parcelable-intellij-plugin GsonFormat android-selector-chapek adb-idea android-material-design-icon-generator-plugin 扩展阅读 Android-Studio-Plugins Andr...

sqlite常用语法总结

1.创建表 SQLite数据类型 integer:整数值 real:浮点数 text:文本 blob:二进制大对象 NULL 唯一性约束UNIQUE CREATE TABLE Contacts (id INTEGER PRIMARY KEY,name TEXT NOT NULL,phone TEXT NOT NULL DEFAULT 'UNKNOWN',UNIQUE(nam...

LinkedHashMap源码分析

LinkedHashMap继承HashMap。 插入 //HashMap实现 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } //HashMap实现 final V putVal(int hash, K key, V value, boolean onlyI...

HashMap源码分析

类图 构造函数 public HashMap(int initialCapacity, float loadFactor) { if (initialCapacity < 0) throw new IllegalArgumentException("Illegal initial capacity: " + ...

LinkedList源码分析

类图 构造函数 transient int size = 0; transient Node<E> first; //记录第一个节点 transient Node<E> last; //记录最后一个节点 public LinkedList() { } public LinkedList(Collection<? extends E> c) { ...

观察者模式