抽象工厂
来源:互联网 发布:一号店和淘宝开店 编辑:程序博客网 时间:2024/06/16 20:19
四、工厂方法模式
抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。
具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。在java中它由具体的类来实现。
抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。
具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。
抽象工厂角色: 这是工厂方法模式的核心,它与应用程序无关。是具体工厂角色必须实现的接口或者必须继承的父类。在java中它由抽象类或者接口来实现。
具体工厂角色:它含有和具体业务逻辑有关的代码。由应用程序调用以创建对应的具体产品的对象。在java中它由具体的类来实现。
抽象产品角色:它是具体产品继承的父类或者是实现的接口。在java中一般有抽象类或者接口来实现。
具体产品角色:具体工厂角色所创建的对象就是此角色的实例。在java中由具体的类来实现。
来用类图来清晰的表示下的它们之间的关系:
话说暴发户生意越做越大,自己的爱车也越来越多。这可苦了那位司机师傅了,什么车它都要记得,维护,都要经过他来使用!于是暴发户同情他说:我给你分配几个人手,你只管管好他们就行了!于是工厂方法模式的管理出现了。代码如下:
abstract class Car{ private String name; public abstract void drive(); public String getName() { return name; } public void setName(String name) { this.name = name; } } //具体产品 class Benz extends Car{ public void drive(){ System.out.println(this.getName()+"----go-----------------------"); } } class Bmw extends Car{ public void drive(){ System.out.println(this.getName()+"----go-----------------------"); } } //抽象工厂 abstract class Driver{ public abstract Car createCar(String car) throws Exception; } //具体工厂(每个具体工厂负责一个具体产品) class BenzDriver extends Driver{ public Car createCar(String car) throws Exception { return new Benz(); } } class BmwDriver extends Driver{ public Car createCar(String car) throws Exception { return new Bmw(); } } //老板 public class Boss{ public static void main(String[] args) throws Exception { Driver d = new BenzDriver(); Car c = d.createCar("benz"); c.setName("benz"); c.drive(); } }
阅读全文
0 0
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- 抽象工厂
- C/C++ 之 sizeof 操作符总结
- 日期操作类DateUtils
- 51Nod-1451-合法三角形
- 计算机网络(概述上)
- JSP中三种注释的区别
- 抽象工厂
- 【PostgreSQL-9.6.3】psql常用命令
- HDU4750
- 1进程与线程以及Linux中fork()的运用
- Rokid Open Voice SDK快速集成指南
- Mybatis自动代码生成(使用交行BBIP框架)
- mybatis 逆向工程 generator xml
- 使用fs模块让你在开发项目中不用重复的去修改webpack的配置文件
- NAT技术与代理服务器调研