设计模式
设计模式理论学习和实践指南,通过一系列文章掌握所有常见设计模式,并可以在平时的编码过程中适用。
iceWang丶
这个作者很懒,什么都没留下…
展开
-
设计模式(07)——设计原则(2)
在上一篇文章中,我们已经介绍了 单一职责原则,开闭原则,里氏替换原则,接口隔离原则,依赖翻转原则。 上面说的这5种比较常见,下面就让我们再介绍一些不常见的,但这些原则在指导代码设计中,也十分的重要。 KISS原则 **Keep It Simple and Stupid,**这个原则听起来比较简单,重点是理解什么样的代码是简单的,代码行数少就是简单的代码吗???还是说当程序的逻辑十分复杂不容易理解时就是一个复杂的代码呢??? 下面就让我们来看看怎么样判断简单。 代码行数 代码就不展示了,其实懂的都懂,代码行原创 2020-12-05 15:32:59 · 158 阅读 · 0 评论 -
设计模式(06)——设计原则(1)
设计原则 设计原则,是设计模式的内功心法,基本所有的设计模式都是基于设计原则进行的具体化,如果说设计模式是如何操作的话,那么设计原则就是为何这么做的基石,因此,只要我们能充分理解设计原则,那么在此基础上,对设计模式就能更好的理解,甚至能自己设计出一种设计模式来。 单一职责原则 定义 一个类或模块,只需要完成一个范围的功能,而不要搞得大而全。 场景 例如我们设计一个社交网站,现在要存储用户信息,类设计如下: public class UserInfo { private String name;原创 2020-12-01 16:58:12 · 130 阅读 · 0 评论 -
设计模式(05)——组合和继承
组合和继承 继承带来的问题 在 《面向对象以及特性分析》文章,我们可以看到继承带来的问题: 菱形问题; 继承层次过深过复杂。 如上图所示,因为每个鸟根据特性会有会飞或者不会飞的特性,也会有会叫不会叫的特性等等,如果根据这些特性来设计类,然后让对应的终点类来继承的话,那么则会造成类的膨胀,从而代码变得十分的复杂。 组合的优势 针对上述继承所带来的问题,我们可以通过组合、委托、接口 3个技术手段,来进行另一种层面上的实现,具体代码如下。 // ===========================原创 2020-11-11 14:59:38 · 239 阅读 · 0 评论 -
设计模式(04):接口和抽象类
接口和抽象类 区别 接口是对行为的抽象,其重点关注的是要有该行为。 抽象类是对一些共性行为的聚合,将多个子类都有的具体行为抽象成一个方法,形成复用。 public abstract class Bird { private String name; private BigDecimal weight; private String habit; } public interface IFlyable { /** * a bird that can fly原创 2020-11-04 15:35:53 · 160 阅读 · 2 评论 -
设计模式(三):面向对象与面向过程的区别和联系
面向对象与面向过程 在前面我们讲述了面向对象的概念,在这里我们再分析一些另一种编程范式:面向过程。 面向过程和面向过程语言 针对面向对象的概念解释,这里,我们用相同的方式来对面向过程进行解释: 面向过程是一种编程范式,其重点是将函数作为代码组织的基本单元,其将数据和方法相分离,通过函数的顺序执行来完成任务; 面向过程语言对应的就是不支持类和对象的定义,也不支持面向对象的一些特性,如封装、多态等。 优劣 从上面的定义看出,面向过程的优劣势如下所示: 在流程比较复杂的时候,面向过程会变得吃力,因为原创 2020-11-01 14:56:02 · 635 阅读 · 0 评论 -
设计模式(二):面向对象以及特性分析
面向对象 根据大纲,首先我们来学习一种代码设计与编写的风格,即面向对象。 面向对象编程和面向对象编程语言 面向对象编程是一种编程范式,通俗来说,就是将 代码的组织单元改成类和对象,并将 **封装、继承、抽象、多态 **作为代码设计和编写的基石。 面向对象编程语言代表了能简易实现面向对象编程范式的语言,其如果能够用现成的语法机制来实现范式,就是面向对象编程语言。 从上述的定义中,我们可以看出,面向对象编程不一定非要用面向对象编程语言来实现,同时,当我们使用面向对象编程语言来编写代码时,可能写出来的却原创 2020-10-22 09:32:09 · 341 阅读 · 4 评论 -
设计模式(一):学习大纲
设计模式(一):学习大纲 该系列文章,是在学习网上课程时的学习总结,可能会有一些瑕疵和错误,看到的可以留言反馈,谢谢~ 学习意义 重要性的看法 设计模式老生常谈了,对程序员的后续发展是很重要的,可以有效提升代码的可读性,具体来看,有如下用途: 应对面试,面试里面装高手; 装杯,写出来的代码别人看到了只能说牛皮; 复杂逻辑的结构用设计模式的思想来实现代码,才能实现的好; 源码、框架里面很多设计模式思想,不懂就看不懂了; 一切为了职场未来更好的装杯。 大纲 面向对象 四大特性:继承、封装、多态原创 2020-10-17 14:44:59 · 123 阅读 · 0 评论