<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[b44431的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/b44431</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; b44431]]></copyright><item><title><![CDATA[一些可以参考的常用工具库类整理]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232703</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232703</guid><author>b44431</author><pubDate>Mon, 15 Aug 2016 14:08:00 +0800</pubDate><description><![CDATA[强大的common包们：
Trinea：https://github.com/Trinea/android-common（包含强大的listview、bitmap cache）
litesuits：https://github.com/litesuits/android-common

下面为零散的common包集合：
注意查看每个库的说明文档辅助快速上手

...]]></description><category></category></item><item><title><![CDATA[Java(Android)线程池 总结]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232710</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232710</guid><author>b44431</author><pubDate>Wed, 13 Jul 2016 20:12:00 +0800</pubDate><description><![CDATA[JAVA的Executors源码：（可以看出底层都是通过ThreadPoolExecutor来具体设置的~）




public static ExecutorService newCachedThreadPool() {
        return new ThreadPoolExecutor(0, Integer.MAX_VALUE,
         ...]]></description><category></category></item><item><title><![CDATA[JAVA泛型]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232701</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232701</guid><author>b44431</author><pubDate>Tue, 12 Jul 2016 18:17:00 +0800</pubDate><description><![CDATA[泛型类


publicclassContainer&lt;K, V&gt;{
 private K key;
 private V value;

 publicContainer(K k, V v){
 key = k;
 value = v;
 }

 public K getKey(){...]]></description><category></category></item><item><title><![CDATA[设计模式总结]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232708</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232708</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:29:00 +0800</pubDate><description><![CDATA[设计模式的六大原则



开闭原则：模块应尽量在不修改原代码(闭)的情况下进行扩展(开)。在程序需要进行拓展的时候，不能去修改原有的代码，实现一个热插拔的效果。
里氏代换原则：如果调用的是父类的话，那么换成子类也完全可以运行。 派生类能够在基类的基础上增加新的行为。只有当派生类可以替换掉基类，且软件单位的功能不受到影响时，基类才能真正被复用。实现开闭原则的关键步骤就是抽...]]></description><category></category></item><item><title><![CDATA[原型模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232706</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232706</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:28:00 +0800</pubDate><description><![CDATA[原型模式



何时使用：用原型实例指定创建对象的种类，并且通过拷贝这些原型创建新的对象。在运行期建立和删除原型。用于创建当前对象的克隆。当直接创建对象的代价比较大时，则采用这种模式。例如，一个对象需要在一个高代价的数据库操作之后被创建。我们可以缓存该对象，在下一个请求时返回它的克隆，在需要的时候更新数据库，以此来减少数据库调用。
如何解决：利用已有的一个原型对象...]]></description><category></category></item><item><title><![CDATA[工厂模式与抽象工厂模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232699</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232699</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:28:00 +0800</pubDate><description><![CDATA[工厂模式


何时使用：我们明确地计划不同条件下创建不同实例时。主要解决接口选择的问题。
如何解决：定义一个工厂接口，让工厂类实现工厂接口。让调用者自己通过参数传递决定实例化创建哪一个工厂类，返回的是一个抽象的工厂产品实例。
使用场景： 1、日志记录器：记录可能记录到本地硬盘、系统事件、远程服务器等，用户可以选择记录日志到什么地方。 2、数据库访问，当用户不知道最后系...]]></description><category></category></item><item><title><![CDATA[适配器模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232704</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232704</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:27:00 +0800</pubDate><description><![CDATA[何时使用： 1、系统需要使用现有的类，而此类的接口不符合系统的需要。 2、想要建立一个可以重复使用的类，用于与一些彼此之间没有太大关联的一些类，包括一些可能在将来引进的类一起工作，这些源类不一定有一致的接口。 3、通过接口转换，将一个类插入另一个类系中。主要解决：将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工...]]></description><category></category></item><item><title><![CDATA[建造者模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232696</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232696</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:27:00 +0800</pubDate><description><![CDATA[建造者模式


何时使用：对每个对象：将一个复杂的构建过程与其具表示细节相分离，使得同样的构建过程可以创建不同的表示。主要解决在软件系统中，有时候面临着"一个复杂对象"的创建工作，其通常由各个部分的子对象用一定的算法构成；由于需求的变化，这个复杂对象的各个部分经常面临着剧烈的变化，但是将它们组合在一起的算法却相对稳定。
如何解决：对每个Builder：将变(Builde...]]></description><category></category></item><item><title><![CDATA[组合模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232606</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232606</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:27:00 +0800</pubDate><description><![CDATA[组合模式（Composite Pattern）



何时使用：将对象组合成树形结构以表示"部分-整体"的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性，客户程序可以向处理简单元素一样来处理复杂元素，从而使得客户程序与复杂元素的内部结构解耦。1、您想表示对象的部分-整体层次结构（树形结构）。 2、您希望用户忽略组合对象与单个对象的不同，用户将统一地使...]]></description><category></category></item><item><title><![CDATA[过滤器模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232702</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232702</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:26:00 +0800</pubDate><description><![CDATA[过滤器模式（Filter Pattern）或标准模式（Criteria Pattern）
允许开发人员使用不同的标准来过滤一组对象，通过逻辑运算以解耦的方式把它们连接起来。可以组合多个标准来获得单一的标准。

例子：
一组对象List实例 -&gt; 一个标准模式Criteria -&gt; 过滤对象：XXXCriteria.meetCrieria(原始List) -&g...]]></description><category></category></item><item><title><![CDATA[外观模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232607</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232607</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:26:00 +0800</pubDate><description><![CDATA[外观模式



何时使用：隐藏系统的复杂性，并向客户端提供了一个客户端可以访问系统的高层接口，使得这一子系统更加容易使用。为子系统中的一组接口提供一个一致的界面。可以向现有的系统添加一个接口，来隐藏系统的复杂性。1、客户端不需要知道系统内部的复杂联系，整个系统只需提供一个"接待员"即可。 2、定义系统的入口。
如何解决：客户端不与系统耦合，外观类与系统耦合。在客户端和复杂...]]></description><category></category></item><item><title><![CDATA[装饰器模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232700</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232700</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:25:00 +0800</pubDate><description><![CDATA[装饰器模式



何时使用：保持接口，增强性能。为了扩展一个类经常使用继承方式实现，由于继承为类引入静态特征，并且随着扩展功能的增多，子类会很膨胀，在不想增加很多子类的情况下扩展类，动态地给一个对象添加一些额外的职责，可以使用装饰器模式。特点：不改变原类文件、不使用继承、动态扩展。
如何解决：将具体功能职责划分，同时地继承装饰者模式。1、Component 类充当抽象角...]]></description><category></category></item><item><title><![CDATA[桥接模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232695</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232695</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:24:00 +0800</pubDate><description><![CDATA[何时使用：系统可能有多个角度分类，每一种角度都可能变化。在有多种可能会变化的情况下，用继承会造成类爆炸问题，扩展起来不灵活。
如何解决：需要一个作为桥接的接口/抽象类，多个角度的实现类依赖注入到抽象类，使它们在抽象层建立一个关联关系，能把这种多角度分类的实现类分离出来，让它们独立变化，减少它们之间耦合；同时，抽象和实现之间可以独立扩展，不会影响到彼此，也将实现部分与抽...]]></description><category></category></item><item><title><![CDATA[代理模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232694</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232694</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:23:00 +0800</pubDate><description><![CDATA[代理模式


何时使用：想在访问一个类时做一些控制。为其他对象提供一种代理以控制对这个对象的访问。
关键代码：增加中间层（代理层），代理类与底层实现类实现共同接口，并创建底层实现类对象（底层实现类对象依赖注入代理类），以便向外界提供功能接口。
优点： 1、职责清晰。 2、高扩展性。 3、智能化。
缺点： 1、由于在客户端和真实主题之间增加了代理对象，因此有些类型的代...]]></description><category></category></item><item><title><![CDATA[责任链模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232693</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232693</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:23:00 +0800</pubDate><description><![CDATA[责任链模式


何时使用：在处理消息的时候以过滤很多道。避免请求发送者与接收者耦合在一起，让多个对象都有可能接收请求，将这些对象连接成一条链，并且沿着这条链传递请求，直到有对象处理它为止。在这种模式中，通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求，那么它会把相同的请求传给下一个接收者，依此类推。
如何解决：拦截的类都实现统一接口。通常每个接收者都...]]></description><category></category></item><item><title><![CDATA[解释器模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232692</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232692</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:23:00 +0800</pubDate><description><![CDATA[解释器模式


何时使用：如果一种特定类型的问题发生的频率足够高，那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器，该解释器通过解释这些句子来解决该问题。给定一个语言，定义它的文法表示，并定义一个解释器，这个解释器使用该标识来解释语言中的句子。这种模式被用在 SQL 解析、符号处理引擎等。主要用于一些固定文法构建一个解释句子的解释器。...]]></description><category></category></item><item><title><![CDATA[命令模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232691</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232691</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:22:00 +0800</pubDate><description><![CDATA[命令模式


何时使用：在某些场合，比如要对行为进行"记录、撤销/重做、事务"等处理，这种无法抵御变化的紧耦合是不合适的。在这种情况下，应将"行为请求者"与"行为实现者"解耦。
如何解决：调用者依赖命令，命令依赖接收者（即：接收者依赖注入到命令，特定的接收处理者与相对应的命令绑定；命令依赖注入到接收者）。通过调用者发布命令，命令中的接收者执行这个命令，顺序：调用者Inv...]]></description><category></category></item><item><title><![CDATA[迭代器模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232690</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232690</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:22:00 +0800</pubDate><description><![CDATA[迭代器模式
Java 和 .Net 编程环境中非常常用的设计模式。用于顺序访问集合对象的元素，不需要知道集合对象的底层表示。



何时使用：用于遍历一个聚合对象，提供一种方法顺序遍历访问一个聚合对象中各个元素, 而又无须暴露该对象的内部表示。：1、访问一个聚合对象的内容而无须暴露它的内部表示。 2、需要为聚合对象提供多种遍历方式。 3、为遍历不同的聚合结构提供一...]]></description><category></category></item><item><title><![CDATA[中介者模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232689</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232689</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:22:00 +0800</pubDate><description><![CDATA[中介者模式



何时使用：多个类相互耦合，形成了网状结构。对象与对象之间存在大量的关联关系，这样势必会导致系统的结构变得很复杂，同时若一个对象发生改变，我们也需要跟踪与之相关联的对象，同时做出相应的处理。中介者模式可以处理不同类之间的通信，支持松耦合，用来降低多个对象和类之间的通信复杂性使代码易于维护：用一个中介对象来封装一系列的对象交互，中介者使各对象不需要显式地...]]></description><category></category></item><item><title><![CDATA[状态模式]]></title><link>https://blog.youkuaiyun.com/b44431/article/details/102232688</link><guid>https://blog.youkuaiyun.com/b44431/article/details/102232688</guid><author>b44431</author><pubDate>Mon, 27 Jun 2016 18:21:00 +0800</pubDate><description><![CDATA[状态模式
何时使用：允许对象在内部状态发生改变时改变它的行为，对象看起来好像修改了它的类。
如何解决：创建表示各种状态的对象和一个行为随着状态对象改变而改变的 context 对象，对象的行为依赖于它的状态，并且可以根据它的状态改变而改变它的相关行为(可通过调用内部的状态对象实现相应的具体行为)。（即状态对象依赖注入到context对象，状态对象中具体实现不同行为）
优点...]]></description><category></category></item></channel></rss>