学习编程到一定阶段的时候都会进入设计模式学习,但是同时又有很多人诟病设计模式,认为其是把简单的问题复杂化。但在我看来,只有适不适合,如果使用设计模式后觉得是把问题复杂化,那么只能说不适合。设计模式在我看来真正的价值以下几点
抽象
在我们所有一切表象中的主要区别即直观表象和抽象表象的区别。后者只构成表象的一个类,即概念 -- 《作为意志和表象的世界》
理解设计模式更多在于理解问题的本质,世界是由物质和非物质组成。
初期我们可能只理解与物质的抽象,比如定义一辆汽车Car,于是衍生于创建模式(比如工厂,单例,原型等)。
中期,我们发现对于非物质我们也需要抽象,比如物质间的关系,于是衍生出结构型模式(代理,装饰等)
后期,我们发现物质的行为一种真实的存在,并且行为间也存在关系,依然以汽车为例,汽车通电,点火,挂档,这一系列行为,都是依赖于上一个行为的结果,并且拥有着相同的上下文(汽车的状态),对于这个就抽象出责任连。着一种设计模式叫做行为型模式
规范
这一点是基于抽象,正是由于大部分的开发者活着机构认可了设计模式的抽象,以至于在工作中运用起来,达到一定基数后,自然成为行业的潜规则,以至于我们在看别人的源码的时候能够更利于理解,典型的就是Spring的源码,很多代码看一个类名就只大概知道起作用,比如BeanFatory,FilterChain, AopProxy。
个人观点
我也比较赞同为了设计模式而用设计模式,但仅限于学习,因为这样才能真正明白其中的原理和应用场景。至于工作中特别是上生产,还是要掌握后再使用。
领取专属 10元无门槛券
私享最新 技术干货