java设计模式之观察者模式

在现实世界中,很多对象并不是独立存在的,其中一个对象的行为发生改变可能会导致一个或者多个的其他对象的行为也发生改变。
比如微信公众号,不定时的发布一些消息,关注公众号就可以收到消息,取消关注就收不到消息。还有当我们开车到路口时,
遇到红灯会停下,绿灯则通行等等
在软件世界也是这样,比如图表中的数据与折线图,饼状图,柱状图之间的关系,MVC模式中的模型与视图的关系,比如发布订阅模式等等。

阅读更多

java设计模式之工厂模式

在现实生活中社会分工越来越细,越来越专业化。各种产品有专门的工厂生产,彻底告别了自给自足的小农经济时代,这大大缩短了产品的生产周期,提高了生产效率。
同样,在软件开发中能否做到软件对象的生产和使用相分离呢?
能否在满足“开闭原则”的前提下,客户随意增删或改变对软件相关对象的使用呢?

阅读更多

java设计模式之策略模式

在现实生活中常常遇到实现某种目标存在多种方案可供选择的情况,例如出行旅游可以乘坐火车,飞机,或者自驾等。
在软件开发中,也常常遇到类似的情况,当实现某个功能存在多种算法或者策略,我们可以根据不同的条件选择不同的算法来实现该功能。比如排序算法,我们可以选择冒泡排序,选择排序,插入排序,二叉树排序等
如果使用多重条件转移语句实现(即硬编码),不但使条件语句变得复杂,而且增加了代码的复杂程度,不易维护,违背开闭原则。采用策略模式能很好的解决这个问题。

阅读更多

UML中的类图及常见类图关系

UML(统一建模语言,Unified Modeling Language),是用来设计软件蓝图的可视化建模语言。从目标系统的不同角色出发,分为用例图,类图,对象图,状态图,活动图,时序图,协作图,构件图,部署图等9种图
最近重新研究了设计模式,在整理总结时,用到了类图,发现经常混淆类图的关系,所以特意做下整理。

阅读更多

java包名命名规则

java包名统一使用小写,点分隔符之间有且仅有一个自然语义的英文单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。

阅读更多

git常用命令收集与git-flow简介

git 最强大的就是其分支功能,但是如何分支才能更有效的提高开发效率,减少因为代码合并带来的问题,需要一个分支模型来规范,其实在 git flow 出现之前,已经有分支模型理论流程,当时是根据此理论,手动的按照规范操作分支,git flow 出现之后,将一部分操作流程简化为命令,并没有增加新的功能,只是简化了操作。

阅读更多

Webpack配置介绍

webpack.config.js为webpack的默认配置,我们可以为开发环境和生产环境分别做不同的配置.下面一一介绍每个配置的作用

阅读更多

node中的path模块常用介绍

对于前端开发的同学相信大家都会用过path这个模块去解析路径,比较遗憾的是,以往都只是百度其某个方法的用法,没有完整的去看过接口文档,导致现在阅读一些代码的时候碰到path的其他方法一脸懵逼,所以趁着项目不忙去看了一下官方文档并做个笔记。

阅读更多

Lambda表达式详解

Lambda表达式是Java SE 8中一个重要的新特性。lambda表达式允许你通过表达式来代替功能接口。 lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体(body,可以是一个表达式或一个代码块)。

阅读更多