首页 / 设计模式 / Java 设计模式之工厂方法模式
Java 设计模式之工厂方法模式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 设计模式之工厂方法模式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1624字,纯文字阅读大概需要3分钟。
内容图文
![Java 设计模式之工厂方法模式](/upload/InfoBanner/zyjiaocheng/846/5c29fc23218f406bb6a20388ca149195.jpg)
本文为笔者学习《Head First设计模式》的笔记,并加入笔者自己的理解和归纳总结
工厂方法模式定义了一个创建对象的接口,但由子类决定要实例化的类是哪一个。工厂方法让类把实例化推迟到子类。
结构图
不同的车(Car
)拥有不同的轮胎(Tyre
),但轮胎由车自由选择。
public abstract class Car {
String name;
Tyre tyre;
public Car(String name) {
this.name = name;
tyre = createTyre();
}
public abstract Tyre createTyre();
public void description() {
System.out.println(name + " use " + tyre.getDescription());
}
}
public interface Tyre {
String getDescription();
}
轮胎厂商有普利司通(Bridgestone
)、韩泰(Hankook
)、米其林(Michelin
)等。
public class Bridgestone implements Tyre {
@Override
public String getDescription() {
return "Bridgestone";
}
}
public class Hankook implements Tyre {
@Override
public String getDescription() {
return "Hankook";
}
}
public class Michelin implements Tyre {
@Override
public String getDescription() {
return "Michelin";
}
}
汽车型号有朗逸(Lavida
)、凌渡(Lamando
)、桑塔纳(Santana
),在各个子类内部分别创建不同的轮胎。
public class Lavida extends Car {
public Lavida() {
super("Lavida");
}
@Override
public Tyre createTyre() {
return new Bridgestone();
}
}
public class Lamando extends Car {
public Lamando() {
super("Lamando");
}
@Override
public Tyre createTyre() {
return new Michelin();
}
}
public class Santana extends Car {
public Santana() {
super("Santana");
}
@Override
public Tyre createTyre() {
return new Hankook();
}
}
运行
public static void main(String[] args) {
Car car = new Lamando();
car.description();
car = new Lavida();
car.description();
car = new Santana();
car.description();
}
输出
Lamando use Michelin
Lavida use Bridgestone
Santana use Hankook
内容总结
以上是互联网集市为您收集整理的Java 设计模式之工厂方法模式全部内容,希望文章能够帮你解决Java 设计模式之工厂方法模式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。