最近一直在Java方向奋斗《终于,我仍是下决心学Java后台了》,今天抽空开始学习Java的设计模式了
。计划有时间就去学习,你这么有时间,还不来一块儿上车吗?android
之因此要学习Java模式,是由于面试的时候有时间回答的不是太完整,面试事后才想起来如何回答。因此,我说了: 只有总结才是王道,只有总结才能提升git
其实正规的来讲Java实际上是23中设计模式,不过网上也有说是24种或者是26中的!设计模式不过是前人对代码的一种封装。用专业的话来说:设计模式是一套被反复使用、多数人知晓的、通过分类编目的、代码设计经验的总结程序员
建立型模式,共五种:github
结构型模式,共七种:面试
行为型模式,共十一种:数据库
工厂模式是建立型模式之一,又称为静态工厂方法模式!设计模式
缺点:框架
每次增长一个产品时,都须要增长一个具体类和对象实现工厂,是的系统中类的个数成倍增长,在必定程度上增长了系统的复杂度,同时也增长了系统具体类的依赖。这并非什么好事。学习
用途:测试
第一种状况是对于某个产品,调用者清楚地知道应该使用哪一个具体工厂服务,实例化该具体工厂,生产出具体的产品来。Java Collection中的iterator() 方法即属于这种状况。
第二种状况,只是须要一种产品,而不想知道也不须要知道到底是哪一个工厂为生产的,即最终选用哪一个具体工厂的决定权在生产者一方,它们根据当前系统的状况来实例化一个具体的工厂返回给使用者,而这个决策过程这对于使用者来讲是透明的。
典型例子:
车子继承vehicle(车)类,有小汽车卡,公交车bus等,车子工厂实现工厂接口,工厂接口有抽象方法vehicle produce vehicle(String type)方法,车子工厂中实现工厂方法vehicle produce vehicle(String Type),方法中根据须要new新的车子。
示例代码:
有人把工厂模式分为: 简单工厂模式 ,工厂方法模式,抽象工厂模式,因此多出一种模式,这里简单工厂模式比较简单,实际中用的的不多,只在很简单的状况下用,没啥好说的,听说这不是一个真正的设计模式。在这里我就不作讨论了。但愿 你们也不用纠结!
项目地址:
学习一个知识点要知道是什么,为何,怎么办,要知其然。也要知其因此然!
在这里得到的不只仅是技术!