java工厂模式
2018-12-14 08:36:50来源:博客园 阅读 ()
工厂模式
实现创建者和调用者的分离
简单工厂,工厂方法,抽象工厂模式。
面向对象的设计原则:OCP(开闭原则):软件的设计应该对扩展开放,对修改关闭
DIP(依赖倒转原则):应该针对接口编程,不应该针对实现编程。
简单工厂:
例:
//顶级接口
public interface Car extends Runnable{
}
//子接口
public class Audi implements Car{
@Override
public void run() {
System.out.println("奥迪再跑");
}
}
//子接口
public class Byd implements Car{
@Override
public void run() {
System.out.println("比亚迪再跑");
}
}
通过给不同的工厂传不同类型的参数,返回不同的对象
public class CarFactory {
public Car getInstance(String type) {
if("奥迪".equals(type)) {
return new Audi();
}else if("比亚迪".equals(type)) {
return new Byd();
}else {
return null;
}
}
}
简单工厂也称之为静态工厂,因为只能生成已知的对象;同时,简单工厂违反了开闭原则。
工厂方法模式
声明一个车辆工厂的接口
public interface CarFactory {
public Car getInstance();
}
让产生不同的车辆的工厂实现抽象车辆工厂
生产奥迪的工厂
public class AudiFactory implements CarFactory{
@Override
public Car getInstance() {
return new Audi();
}
}
奥迪类
public class Audi implements Car{
@Override
public void run() {
System.out.println("奥迪再跑");
}
}
当需要生产奥迪车的时候创建一个奥迪车的工厂对象
工厂方法与静态工厂相比较而言,不用违反开闭原则,在原有基础上,增加实现类即可实现对应的功能。
简单工厂和工厂方法比较
简单工厂相对简单,代码复杂度相对简单。但是设计上工厂方法更加满足要求,但实际开发中简单工厂比工厂方法更加实用。
抽象工厂
1.抽象产品接口:定义产品的接口,公共的暴露方法。便于实际的产品类实现。
2.具体的产品类:包含实际产品的类的逻辑处理:
3.抽象工厂接口:定义产生系列对象的接口
4.具体的工厂实现:实现抽象的接口工厂,返回具体的产品类的实现。
代码略;
抽象工厂还是针对某一个产品族进行设计的。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:Java下载execl表格
下一篇:Logback简单使用
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash