摘要:
什么是享元模式?官方:运用共享技术有效地支持大量细粒度的对象。个人理解:减少多个类似对象的重复使用,将不同的部分抽离,将相似的部分共享。什么时候使用享元模式?1.应用中有很多相似对象。2.对象的多个状态可以放到外部而轻量化。3.对象不依赖对象标识,因为共享对象不能提供唯一的标识。举例:https://github.com/y279336671/DesignPatternsForObjective-... 阅读全文
摘要:
什么是命令模式?官方:将一个请求封装成一个对象,从而使你可以用不同的请求对客户端进行参数化。对请求排队或者记录日志,以支持可撤销的操作。个人理解:命令模式就相当于撸串子时点菜的过程。把你要吃什么的请求封装在一个菜单上交给服务员,服务员按照点菜的顺序一次上菜。当然你也可以撤销你的菜单不吃了。此时服务员相当于Invoker 而烤肉串者相当于Receiver。你就就是Command。什么时候使用命令模式... 阅读全文
摘要:
什么是策略模式?官方:定义一系列算法,把它们一个一个封装起来,并且使它们可以互相替换。本模式是的算法可以独立于使用它的客户而变换。个人理解:策略模式是对算法的封装和整理,主要用途是减少类内部复杂的if else 语句。什么时候使用策略模式?1.出现多个条件语句的时候,可以用策略模式。2.需要算法的各种变体。3.需要避免把复杂的算法和结构暴露给客户端。举例:https://github.com/y2... 阅读全文
摘要:
什么是模版方法?官方:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模版方法使子类可以重新定义算法的某些步骤而不改变算法的结构。个人理解:模版方法没必要刻意去理解,平时的编码过程中不知不觉就会用到。其实就是对算法的进一步抽象,把具有共同特点的算法抽象出共有的接口。什么时候使用模版方法?1.对多个具备共同特点的算法的抽象。2.一次性实现算法的不同部分,并把可变的部分放到子类中去实现。举例:h... 阅读全文