摘要:
思想概要 软件无非就是数据和算法,或者叫状态和行为。当你发现某些类他们拥有同样的数据而仅仅是行为不同的话,你第一时间肯定就想把这些类的数据独立到一个类,而算法分离到不同的类中,然后根据具体情况再把数据和算法动态的结合起来,这就是策略模式要处理的基本问题模型。在JDK中我们常常使用的容器排序就是个典型 阅读全文
摘要:
思想概要 当事件源的管理者根本无法知道事件发生时会有多少,会有哪些处理会被触发时,它最好的选择就是观察模式。这句话的含义很明确,我们要试图建立一个松耦合的架构来处理事件,松耦合常常都是正义的象征,所以此处应该有掌声!观察模式又叫注册/监听模式,这个名字似乎更反映本质,当你对某个信号或者事件感兴趣时, 阅读全文
摘要:
思想概要 装饰模式是对里氏替换的一种扩充,里式替换原则,即:基类可以出现的地方都可以替换为子类。这似乎就是”继承“的标准定义嘛,但是我们的前辈常常告诫我们,继承是危险的,要谨慎使用继承,除非你能够证明A is B,而不是A like B。对于所有A like B的地方,都要积极的使用组合,而不是继承 阅读全文
摘要:
思想概要 代理模式的基本思想来源于“对修改封闭”这个原则,对于某些不是你亲自编写的代码,你最好不要去修改它来扩展其功能,而是通过包装一个代理类去扩展它。因为对方代码可能会在新的版本中被改变,而你对之前版本做的代码层次的修改很有可能在第三方类被替换的时候失去功能。但是请从应用上区分代理模式和装饰模式, 阅读全文