首页 / JAVA / JAVA花园布局(抽象工厂模式)
JAVA花园布局(抽象工厂模式)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JAVA花园布局(抽象工厂模式),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2755字,纯文字阅读大概需要4分钟。
内容图文
实现抽象工厂模式的技术要点如下:
· 抽象工厂模式和工厂方法模式的区别就在于需要创建对象的复杂程度上。而且抽象工厂模式是这三种模式中最为抽象、最具一般性的。
· 使用抽象工厂模式需要满足以下条件:系统中有多个产品族,而系统一次只可能消费其中一族产品;同属于同一个产品族的产品。
· 抽象工厂模式的组成部分与工厂方法模式的组成部分相同
package JAVA_Project_01_05;
/*
实现抽象工厂模式的技术要点如下:
· 抽象工厂模式和工厂方法模式的区别就在于需要创建对象的复杂程度上。而且抽象工厂模式是这三种模式中最为抽象、最具一般性的。
· 使用抽象工厂模式需要满足以下条件:系统中有多个产品族,而系统一次只可能消费其中一族产品;同属于同一个产品族的产品。
· 抽象工厂模式的组成部分与工厂方法模式的组成部分相同
*/
class Plant {//植物
String name;//植物名称
public Plant(String name) {//带参数的构造方法
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
abstract class Garden {//花园类
public abstract Plant getShade();//花台上的植物
public abstract Plant getCenter();//中间的植物
public abstract Plant getBorder();//边上的植物
}
class Elegant extends Garden {//典雅型
public Plant getBorder() {
return new Plant("兰草");
}
public Plant getCenter() {
return new Plant("榕树");
}
public Plant getShade() {
return new Plant("郁金香");
}
}
class Practical extends Garden//实用型
{
public Plant getShade() {
return new Plant("葡萄");
}
public Plant getCenter() {
return new Plant("石榴");
}
public Plant getBorder() {
return new Plant("丝瓜");
}
}
class Lazy extends Garden//懒人型
{
public Plant getShade() {
return new Plant("月季");
}
public Plant getCenter() {
return new Plant("茶花");
}
public Plant getBorder() {
return new Plant("竹");
}
}
class GardenMaker {//抽象工厂类
private static Garden garden;
public static Garden getGarden(String type) {
garden = new Elegant();//默认情况
if (type.equals("实用型"))
garden = new Practical();
if (type.equals("懒人型"))
garden = new Lazy();
return garden;
}
}
public class TextAbstractFactory {//操作抽象工厂模式的类
public static void main(String[] args) {//Java程序主入口处
Garden garden = GardenMaker.getGarden("实用型");//传入参数调用方法获得实例
Plant shade = garden.getShade();//获取花园植物
Plant center = garden.getCenter();
Plant border = garden.getBorder();
System.out.println("花台上的植物:" + shade.getName());
System.out.println("中间的植物:" + center.getName());
System.out.println("边上的植物:" + border.getName());
}
}
/*
(1)程序中定义一个植物类、一个花园的抽象类、三个不同花园的抽象类的实现类以及一个抽象工厂类。程序中使用抽象工厂类实现对不同花园的选择。
使用这样模式能够将实现类和它们的生成过程完全分割开来。实现类被隐藏在工厂类中,调用者不必知道实现类的任何信息。
(2)虽然抽象工厂中的子类继承了同一个超类,但是它们也可以拥有与其他子类不同的方法。
*/
我不是猫叔
发布了70 篇原创文章 · 获赞 10 · 访问量 3168
私信
关注
内容总结
以上是互联网集市为您收集整理的JAVA花园布局(抽象工厂模式)全部内容,希望文章能够帮你解决JAVA花园布局(抽象工厂模式)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。