您的位置:首页 > 编程语言 > Go语言

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

2015-03-29 19:25 603 查看
package com.bjsxt.cn.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.cn.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.cn.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.cn.abstractFactory;
public abstract interface CarFactory { public Engine createEngine(); public Seat createSeat(); public Tyre creatTyre();}
package com.bjsxt.cn.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.cn.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.cn.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(); }}/*高端引擎,运行快高端引擎可自动启动停止高端引擎,运行快高端引擎可自动启动停止高端座椅,舒适可按摩高端汽车,轮胎转速快,无磨损----------------------------低端汽车,运行慢低端汽车,不能自动启动停止低端汽车,不能自动按摩低端汽车转速慢,磨损较快
 * */
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: