java设计模式(一)---工厂方法模式

既然是工厂模式,为了自己加深理解,例子还是用工厂可以造出来的东西吧,比如手机,当然也可以是其他任何产品。
目前市场主要的手机系统类型为安卓、苹果、微软。可能各自的优缺点不一样
假设优点如下:
苹果:
适合玩游戏
安卓:
适合打电话
微软:
适合发短信

1.简单工厂模式

简单工厂模式是一个由工厂对象决定创建出哪一种产品类的实例,又叫静态工厂方法模式。
我们先把手机功能简化一下,假设只能打电话,发短信,玩游戏,新建一个手机的抽象接口
在这里插入图片描述

Phone

import java.util.*;


public interface Phone {

   void callNumber();
   
   void sendMessage(String message);
   
   void playgames(int gameName);

}

每种手机都要实现基本的功能,下面是苹果的实现类:

import java.util.*;

public class Apple implements Phone {

   public void callNumber() {
      // TODO: implement
   }
   
   
   public void sendMessage(String message) {
      // TODO: implement
   }
   
   
   public void playgames(int gameName) {
      // TODO: implement
   }

}

这样每次使用手机类的时候可以根据手机的用途去new实例,代码会更加容易维护。也会更简洁,项目中很少用,但是可以作为入门了解

2.工厂方法模式

工厂方法模式是简单工厂的进一步抽象和推广,由于工厂方法模式具有多态性,工厂模式方法既保持了简单工厂的优点,同时又克服了它的缺点,简单工厂模式中的工厂类负责创建实例,那么如果有新的机型添加,就要修改工厂类,这样也不利于进一步松耦合。工厂方法模式中核心工厂类不负责所有实例的创建,而是将具体的创建工作交给了子类去完成,这个核心类成为了一个抽象工厂角色。
工厂方法模式设计到一下四个角色的概念:

1. 抽象工厂角色
工厂方法模式的核心,创建产品的类必须实现该接口
2. 具体工厂角色
该角色实现了抽象工厂接口,具体如何创建产品就是在该类中实现
3. 抽象产品角色
所有产品的超类,负责实现产品共性的抽象定义
4. 具体产品角色
该角色实现了抽象产品接口,负责具体不同产品的业务逻辑
承接上面的工作创建抽象工厂角色
工厂
新建创建机型001的具体工厂角色
实现类
抽象产品角色与具体产品角色已经定义过了Phone与Phone001-003

具体使用:
使用

已标记关键词 清除标记
1) 优秀的程序应该是这样的:阅读时,感觉很优雅;新增功能时,感觉很轻松;运行时,感觉很快速,这就需要设计模式支撑。 2) 设计模式包含了大量的编程思想,讲授和真正掌握并不容易,网上的设计模式课程不少,大多讲解的比较晦涩,没有真实的应用场景和框架源码支撑,学习后,只知其形,不知其神。就会造成这样结果: 知道各种设计模式,但是不知道怎么使用到真实项目。本课程针对上述问题,有针对性的进行了升级 (1) 授课方式采用 图解+框架源码分析的方式,让课程生动有趣好理解 (2) 系统全面的讲解了设计模式,包括 设计模式七大原则、UML类图-类的六大关系、23种设计模式及其分类,比如 单例模式的8种实现方式、工厂模式的3种实现方式、适配器模式的3种实现、代理模式的3种方式、深拷贝等 3) 如果你想写出规范、漂亮的程序,就花时间来学习下设计模式吧 课程内容和目标 本课程是使用Java来讲解设计模式,考虑到设计模式比较抽象,授课采用 图解+框架源码分析的方式 1) 内容包括: 设计模式七大原则(单一职责、接口隔离、依赖倒转、里氏替换、开闭原则、迪米特法则、合成复用)、UML类图(类的依赖、泛化和实现、类的关联、聚合和组合) 23种设计模式包括:创建型模式:单例模式(8种实现)、抽象工厂模式、原型模式、建造者模式工厂模式。结构型模式:适配器模式(3种实现)、桥接模式、装饰模式、组合模式、外观模式、享元模式、代理模式(3种实现)。行为型模式:模版方法模式、命令模式、访问者模式、迭代器模式、观察者模式、中介者模式、备忘录模式、解释器模式(Interpreter模式)、状态模式、策略模式、职责链模式(责任链模式) 2) 学习目标:通过学习,学员能掌握主流设计模式,规范编程风格,提高优化程序结构和效率的能力。
©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页