- 博客(10)
- 资源 (1)
- 收藏
- 关注
原创 代理模式
有时候可能无法或不想直接访问直接访问这个对象,或者访问某个对象存在困难时可以通过一个代理对象来间接访问,为了保证客户端额透明性,委托对象和代理需要实现相同接口,代理模式用来控制对其代理对象的访问。代理模式的UML图:通过类图其实很好理解,Client通过ProxySubject来来访问RealSubject。代理模式分为动态代理和静态代理。静态代理就是代码运行前代理类的cl
2017-02-28 11:31:12 212
原创 装饰者模式
当需要采用透明的方式来动态扩展对象的功能时,又不想使用继承关系,那么装饰者模式就是替代方案。装饰者模式的应用场景:需要透明且动态地扩展类的功能时装饰者模式UML如下:装饰者模式是继承关系的替代方案,对所装饰的对象增强功能。装饰者模式其实在生活中无处不在,比如人穿衣服,再如电脑主板,通过不断在其上添加cpu,显卡,内存条等来增加功能。
2017-02-28 10:11:55 157
原创 策略模式
在项目中,我们经常会遇见一个功能需要采用多种算法或策略的情况,此时,我们写一个类来实现多种算法或策略以及在一个方法中通过if/else语句来实现多种算法或策略,这些方法称为硬编码(实际上我就这么干过 - -)。这样做违反了单一职能原则和开闭原则,会导致之后的代码很难维护。策略模式的应用场景:1.针对同一类型的问题的多种处理方式,仅仅是具体行为有差别2.需要安全的封装多种同一类型
2017-02-28 09:01:49 215
原创 设计模式的六大原则
当编写代码量比较大的项目时,并且随着需求的变更,总是会发现代码会变得越来越不可维护,越来越像坨shit。其实这是一个普遍的问题的,前人们在多年的工程实践中总结出了一系列应对方法,而这些方法就是设计模式。设计模式的六大原则:1.单一职能原则:每一个类最好具备单一职能,而不是一个类行使多个职能,这样会很臃肿而且系统划分不够清晰2.开闭原则:对扩展开放,对修改关闭。现实当中很难完全做
2017-02-27 15:16:29 195
原创 关于设计模式学习的浅见
设计模式可以说是前人在实践中的心血结晶,它并不是一门知识,而是强操作性的技能。所在在学习时,应该在实践中不断运用并进行强化。学习任何东西,最主要的是掌握其思想,深刻理解,然后在探究其如何去实现该核心思想。编程就像艺术和摄影一样,需要不间断地实践来磨练基本功,需要进一步就必须深刻掌握并运用其内在的核心思想,从而才能真正达到运用自如。对于设计模式的学习应该包含以下几点:1.
2017-02-09 14:19:30 191
原创 LeetCode Maximum Subarray
Total Accepted: 165647Total Submissions: 425680Difficulty: EasyContributors: AdminFind the contiguous subarray within an array (containing at least one number) which has the largest sum.For ex
2017-02-09 09:09:11 151
原创 LeetCode Jump Game
Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.Determine if yo
2017-02-08 17:02:55 215
原创 LeetCode Wildcard Matching
Implement wildcard pattern matching with support for '?' and '*'.'?' Matches any single character.'*' Matches any sequence of characters (including the empty sequence).The matching should cover t
2017-02-06 16:59:36 138
原创 LeetCode Jump Game II
Given an array of non-negative integers, you are initially positioned at the first index of the array.Each element in the array represents your maximum jump length at that position.Your goal is
2017-02-06 10:53:51 193
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人