工厂设计模式
2016-06-20 10:56
232 查看
1、简单工厂 (产生所有对象)
public class Factory(){
public Factory(String flag){
if ("benz".equals(flag)){
return Benz();
}else if("bmw".equals(flag)){
return Bmw();
}
//其它对象......
}
}
2、工厂方法 (一个工厂生产一个类对象[一对一])
public interface ICarFactory{
public Car car();
}
//奔驰工厂-生成奔驰车
public class Benz implements ICarFactory{
public Car car(){
return new Benz();
}
}
//宝马工厂-生成宝马车
public class Bmw implements ICarFactory{
public Car car(){
return new Bmw();
}
//其它车工厂类......
3、抽象工厂 (一个工厂生产多个类对象[一对多])
//工厂生产车和引擎两大产品
public interface Factory{
public Car createCar();
public Engine createEngine();
}
//奔驰工厂
public class implements BenzFactory{
public Car createCar(){
return new Benz();
}
public Engine createEngine(){
return new BenzEngine();
}
}
//宝马工厂
public class implements BmwFactory{
public Car createCar(){
return new Bmw();
}
public Engine createEngine(){
return new BmwEngine();
}
}
//其它工厂......
总结
简单工厂、工厂方法、抽象工厂
public class Factory(){
public Factory(String flag){
if ("benz".equals(flag)){
return Benz();
}else if("bmw".equals(flag)){
return Bmw();
}
//其它对象......
}
}
2、工厂方法 (一个工厂生产一个类对象[一对一])
public interface ICarFactory{
public Car car();
}
//奔驰工厂-生成奔驰车
public class Benz implements ICarFactory{
public Car car(){
return new Benz();
}
}
//宝马工厂-生成宝马车
public class Bmw implements ICarFactory{
public Car car(){
return new Bmw();
}
//其它车工厂类......
3、抽象工厂 (一个工厂生产多个类对象[一对多])
//工厂生产车和引擎两大产品
public interface Factory{
public Car createCar();
public Engine createEngine();
}
//奔驰工厂
public class implements BenzFactory{
public Car createCar(){
return new Benz();
}
public Engine createEngine(){
return new BenzEngine();
}
}
//宝马工厂
public class implements BmwFactory{
public Car createCar(){
return new Bmw();
}
public Engine createEngine(){
return new BmwEngine();
}
}
//其它工厂......
总结
简单工厂、工厂方法、抽象工厂
相关文章推荐
- Android开发之完全隐藏软键盘的方法
- flexible.js 移动端自适应框架
- java Date获取年月日时分秒的实现方法
- spring3.1之前的HandlerMapping ,HandlerAdapter以及spring3.1写法
- 获取文件名前后缀
- return true 的应用(判断三个块相连)和块的存储
- fir.im Weekly - 从 iOS 10 SDK 新特性说起
- Cocoa pods 的安装 以及使用介绍
- Maven常用插件介绍:Maven-assembly-plugin插件
- cocoaPods详细操作
- 1 Lucene笔记(一):创建索引库、根据关键字搜索
- 网络游戏同步问题
- 改了计算机名后,sqlserver进行发布订阅时,提示此实例上未安装复制组件
- Java关键字final、static使用总结
- Centos 7 (linux)部署MongoDB
- Android中补间动画的基本使用
- ios swift例子源码网址总结
- code1225 搭积木
- android线程操作类(暂停、重新开启、停止)
- ios swift例子源码网址总结