设计模式探索——工厂模式
来源:互联网 发布:淘宝莆田鞋 编辑:程序博客网 时间:2024/06/14 16:41
一、工厂方法模式
关于UML图
典型应用:
class Engine{ public void getStyle(){ System.out.println("这是汽车的发动机"); }}class Underpan{ public void getStyle(){ System.out.println("这是汽车的底盘"); }}class Wheel{ public void getStyle(){ System.out.println("这是汽车的轮胎"); }}public class Client{ public static void main(String[] args){ Engine engine = new Engine(); Underpan underpan = new Underpan(); Wheel wheel = new Wheel(); ICar car = new Car(engine,underpan,wheel); car.show(); }}
这些产品的话可以继承来自同一个的接口,这里可以看出来的就是,客户和产品之间的耦合度是很高的,所以我们需要怎么做呢;
interface IFactory{ public ICar createCar();}calss Factory implements IFactory{ public ICar createCar(){ Engine engine = new Engine(); Underpan underpan = new Underpan(); Wheel wheel = new Wheel(); ICar car = new Car(engine,underpan,wheel); return car; }}public class Client{ public static void main(String[] args){ IFactory factory = new Factory(); ICar car = factory.createCar(); car.show(); }}
使用工厂方法之后,客户端和产品之间的耦合度大大降低了的。
工厂方法模式就是:就是很多的产品继承自同一个接口规范,通过工厂来可以创建不同的产品(这些产品是属于同一的类型的);
二、抽象工厂模式
首先看UML图
interface IProduct1{ public void show();}interface IProduct2{ public void show();}class Product1 implements IProduct1{ public void show(){ System.out.println("这是1型产品"); }}class Product2 implements IProduct2{ public void show(){ System.out.println("这是2型产品"); }}interface IFactory{ public IProduct1 createProduct1(); public IProduct2 createProduct2();}clacc Factory implements IFactory{ public IProduct1 createProduct1(){ return new Product1(); } public IProduct2 createProduct2(){ return new Product2(); }}public class Client{ public static void main(String[] args){ IFactory factory = new Factory(); factory.createProduct1().show(); factory.createProduct2().show(); }}
抽象工厂模式的话就是不同的产品类型关联在不同的工厂中,这些工厂继承自一个抽象的工厂,这样子就严格的区分开来不同的产品类型了,同样如果要添加新的产品的话同样需要修改抽象工厂类
0 0
- 设计模式探索——工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 设计模式—工厂模式
- 探索设计模式之----工厂模式
- 设计模式——工厂设计模式
- Java设计模式—工厂设计模式
- 设计模式探索——原型模式
- javascript的第一步(如果有其他程序基础)
- CHAR和VCHAR区别
- leetcode11. Container With Most Water
- Android开机动画的制作
- NumPy简明教程(一、简介)
- 设计模式探索——工厂模式
- HSV颜色空间
- vsftpd安装与配置
- java基础之数组
- 蠕虫爬井问题(HDOJ1.2.1)
- Git 忽略一些文件不加入版本控制
- solr界面和查询参数注解
- test
- ubuntu10.04可用源