GOF23设计模式之抽象工厂模式的实现

编程知识 行业动态 更新时间:2024-06-13 00:20:03
package com.bjsxt.abstractFactory;
 
public interface Engine {
 void run();
 void start();
}
 
class LuxuryEngine implements Engine {
 
 @Override
 public void run() {
  System.out.println("高端引擎,运行快");
  
 }
 
 @Override
 public void start() {
  System.out.println("高端引擎可自动启动停止");
  
 }
 
}
 
class LowEngine implements Engine {
 
 @Override
 public void run() {
  System.out.println("低端汽车,运行慢");
  
 }
 
 @Override
 public void start() {
  System.out.println("低端汽车,不能自动启动停止");
  
 }
 
}
 
package com.bjsxt.abstractFactory;
 
public interface Seat {
 void massage();
}
 
class LuxurySeat implements Seat {
 
 @Override
 public void massage() {
  System.out.println("高端座椅,舒适可按摩");
  
 }
 
}
 
class LowSeat implements Seat {
 
 @Override
 public void massage() {
  System.out.println("低端汽车,不能自动按摩");
  
 }
 
 
}
 
 
 
package com.bjsxt.abstractFactory;
 
public interface Tyre {
 public void revolve();
}
 
class LuxuryTyre implements Tyre {
 
 @Override
 public void revolve() {
  System.out.println("高端汽车,轮胎转速快,无磨损");
  
 }
 
}
class LowTyre implements Tyre {
 
 @Override
 public void revolve() {
  System.out.println("低端汽车转速慢,磨损较快");
  
 }
 
 
}
 
 
 
package com.bjsxt.abstractFactory;
 
public abstract interface CarFactory {
 public Engine createEngine();
 public Seat createSeat();
 public Tyre creatTyre();
}
 
 
 
 
package com.bjsxt.abstractFactory;
 
public class LowCarFactory implements CarFactory {
 
 @Override
 public Engine createEngine() {
  return new LowEngine();
 }
 
 @Override
 public Seat createSeat() {
  return new LowSeat();
 }
 
 @Override
 public Tyre creatTyre() {
  return new LowTyre();
 }
 
}
 
 
package com.bjsxt.abstractFactory;
 
public class LuxuryCarFactory implements CarFactory {
 
 @Override
 public Engine createEngine() {
  
  return new LuxuryEngine();
 }
 
 @Override
 public Seat createSeat() {
  
  return new LuxurySeat();
 }
 
 @Override
 public Tyre creatTyre() {
  
  return new LuxuryTyre();
 }
 
}
 
/**
 * 时间:2015年3月29日10:48:16
 * 源程序代码作用:测试抽象工厂模式
 * 抽象工厂模式:用来生产不同产品组的全部产品,(对于增加新产品无能为力)
 * 抽象工厂模式:是工厂方法的升级版本
 * 在多个业务品种中,业务分类是通过抽象工厂模式,产生需要的对象是一种非常好的解决方式。
 */
package com.bjsxt.abstractFactory;
 
public class Client {
 public static void main(String[] args) {
  LuxuryCarFactory cf1 = new LuxuryCarFactory();
  Engine e = cf1.createEngine();
  e.run();
  e.start();
  Engine e2 = cf1.createEngine();
  e2.run();
  e2.start();
  cf1.createSeat().massage();
  cf1.creatTyre().revolve();
  System.out.println("----------------------------");
  
  CarFactory cf2 = new LowCarFactory();
  Engine e3 = cf2.createEngine();
  e3.run();
  e3.start();
  cf2.createSeat().massage();
  cf2.creatTyre().revolve();
 }
}
/*
高端引擎,运行快
高端引擎可自动启动停止
高端引擎,运行快
高端引擎可自动启动停止
高端座椅,舒适可按摩
高端汽车,轮胎转速快,无磨损
----------------------------
低端汽车,运行慢
低端汽车,不能自动启动停止
低端汽车,不能自动按摩
低端汽车转速慢,磨损较快
 
 * 
 */

更多推荐

GOF23设计模式之抽象工厂模式的实现

本文发布于:2023-03-29 09:53:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/e950235e088cd2dd51444f8ba4d3b0ba.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:模式   抽象   工厂

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!