二、工厂模式
来源:互联网 发布:c语言windows窗口程序 编辑:程序博客网 时间:2024/06/01 08:11
工厂模式说白了就是用来创建对象的.只不过不同的工厂模式创建的对象的方法和数量不太一样
- 三种分类
- 简单工厂模式
- 工厂模式
- 抽象工厂模式
三种分类
简单工厂模式
简单工厂模式也叫静态工厂模式.其实本质就是实现一些接口.然后用工厂类来创建对象
public interface IProduct{}public class ProductA implements IProduct{}public class ProductB implements IProduct{}public class ProductFactory{ public static IProduct getProduct(ProductType type){ if(type==ProductType.ProductType_A){ return new ProductA(); }else if(type==ProductType.ProductType_B){ return new ProductB(); } } enum ProductType { ProductType_A, ProductType_B }}
工厂模式
一个工厂生成一种对象
public interface IProduct{}public class ProductA implements IProduct{}public class ProductB implements IProduct{}public interface IProductFactory{ IProduct produce();}public class ProductAFactory{ @Override IProduct produce(){ return new ProductA(); };}public class ProductBFactory{ @Override IProduct produce(){ return new ProductB(); };}
抽象工厂模式
主要用于生成一类对象.例子中用来生成mac或者window的border和button
public class AbstractFactory { public IButton CreateButton(); public function CreateBorder();}public class MacFactory extends AbstractFactory{ public IButton createMacButton(){ return new MacButton(); } public IBorder createWinBorder(){ return new MacBorder(); }}public class WinFactory extends AbstractFactory{ public IButton createWinButton(){ return new WindowButton(); } public IBorder createWinBorder(){ return new WindowBorder(); }}public interface IButton{}public interface IBorder{}public class WindowButton implements IButton{}public class MacButton implements IButton{}public class MacBorder implements IBorder{}public class WindowBorder implements IBorder{}
0 0
- 二、工厂方法模式
- 工厂模式(二)
- 二、工厂模式
- 抽象工厂模式二
- (二)工厂方法模式
- 二 工厂方法模式
- 二、工厂模式
- 工厂模式(二)
- 二、工厂方法模式
- 工厂模式(二)--工厂方法模式
- 工厂模式二 工厂方法模式
- 【设计模式】(二)工厂模式
- 二.设计模式-工厂模式
- 简单工厂模式(二)
- Java之二:工厂模式
- 简单工厂模式(二)
- 设计模式<二>-抽象工厂
- 简单工厂模式(二)
- 一些基础的控件
- Java-文本下载
- java写的TCP局域网聊天系统
- hibernate基于泛型基础增删改查方法封装
- 基因数据处理70之Picard安装没成功
- 二、工厂模式
- Linux 空闲空间的格式化与加载
- 1045
- USACO Section 2.3
- CentOS7安装jdk
- MySql中UTF8 和 GBK 编码中文字符长度问题
- linux下vi操作Found a swap file by the name
- java多线程基础一
- CodeForces 659 D. Bicycle Race(计算几何 + 数学公式)