简单工厂——研磨设计模式——跟着cc学设计系列

【简单工厂——研磨设计模式——跟着cc学设计系列】

本节课程概览 学习简单工厂 一:初识简单工厂 包括:定义、结构、参考实现 二:体会简单工厂 包括:场景问题、不用模式的解决方案、使用模式的解决方案 三:理解简单工厂 包括:典型疑问、认识简单工厂、简单工厂中方法的写法、 可配置的简单工厂、简单工厂的优缺点 四:思考简单工厂 包括:简单工厂的本质、何时选用 提前申明 简单工厂不是一个标准的设计模式 简单工厂非常常用,简单而又神奇,所以还是需要好好掌握 可以当成是对学习设计模式的热身运动 初识简单工厂 定义 提供一个创建对象实例的功能,而无须关心其具体实现。被创建实例的类型可以是接口、抽象类,也可以是具体的类。 结构和说明 简单工厂——研磨设计模式——跟着cc学设计系列
文章图片
Api:定义客户所需要的功能接口 Impl:具体实现Api的实现类,可能会有多个 Factory:工厂,选择合适的实现类来创建Api接口对象 Client:客户端,通过Factory去获取Api接口对象,然后面向Api接口编程 体会简单工厂 接口回顾 1:Java中接口的概念 在Java中接口是一种特殊的抽象类 2:接口用来干什么 通常用接口来定义实现类的外观,就相当于一份契约,根据外部应用需要的功能,约定了实现类应该要实现的功能 3:接口的思想 ——“封装隔离” 4:使用接口的好处 只要接口不变,内部实现的变化就不会影响到外部应用,从而使得系统更灵活,具有更好的扩展性和可维护性5:接口和抽象类的选择 (1)优先选用接口 (2)在如下情况选抽象类:既要定义子类的行为,又要为子类提供公共的功能 面向接口编程 面向接口编程是Java编程中的一个重要原则。在Java 程序设计里面,非常讲究层的划分和模块的划分。 比如常见的三层结构: 简单工厂——研磨设计模式——跟着cc学设计系列
文章图片
在一个层内部的各个模块交互也要通过接口 简单工厂——研磨设计模式——跟着cc学设计系列
文章图片
不管是一层还是一个模块或者一个组件,都是一个被接口隔离的整体 简单工厂——研磨设计模式——跟着cc学设计系列
文章图片
问题 既然在Java中需要面向接口编程,那么在程序中到底如何使用接口,来做到真正的面向接口编程呢? 不用模式的解决方案 简单工厂——研磨设计模式——跟着cc学设计系列
文章图片
有何问题? 把这个问题描述一下:在Java编程中,出现只知接口而不知实现,该怎么办? 使用模式的解决方案简单工厂——研磨设计模式——跟着cc学设计系列
文章图片
理解简单工厂 一个典型的疑问 首先来解决一个常见的疑问:可能有朋友会认为,上面示例中的简单工厂看起来不就是把客户端里面的“new Impl()”移动到简单工厂里面吗?不还是一样通过new一个实现类来得到接口吗?把“new Impl()”这句话放到客户端和放到简单工厂里面有什么不同吗? 理解这个问题的重点就在于理解简单工厂所处的位置。 简单工厂——研磨设计模式——跟着cc学设计系列
文章图片
认识简单工厂 1:简单工厂的功能 可以用来创建的接口、抽象类或者是普通类的实例 2:静态工厂 通常把简单工厂类实现成一个工具类,直接使用静态方法就可以了,也就是说简单工厂的方法通常都是静态的,所以也被称为静态工厂 3:万能工厂 一个简单工厂理论上可以用来构造任何对象,所以又称之为“万能工厂” 4:简单工厂创建对象的范围 建议控制在一个独立的组件级别或者一个模块级别 5:简单工厂的调用顺序示意图 简单工厂——研磨设计模式——跟着cc学设计系列
文章图片
6:简单工厂命名的建议 (1)类名建议为“模块名称+Factory”,比如:用户模块的工厂就称为:UserFactory (2)方法名称通常为“get+接口名称”或者是“create+接口名称” (3)不建议把方法名称命名为“new+接口名称”
配套视频课程:【http://sishuok.com/product/501】 私塾在线学习网原创内容,转载请注明【 http://sishuok.com/forum/blogPost/list/0/5670.html】

    推荐阅读