Java设计模式(三):工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
来源:互联网 发布:卖店铺淘宝客软件 编辑:程序博客网 时间:2024/05/01 14:48
简单工厂模式
package com.iter.devbox.factory.simplefactory;public interface Car {public void run();}package com.iter.devbox.factory.simplefactory;public class Audi implements Car {public void run() {System.out.println("奥迪在跑");}}package com.iter.devbox.factory.simplefactory;public class Byd implements Car {public void run() {System.out.println("比亚迪在跑");}}package com.iter.devbox.factory.simplefactory;public class CarFactory {// 简单工厂的第一种实现方式public static Car createCar(String type) {if ("奥迪".equals(type)) {return new Audi();} else if ("比亚迪".equals(type)) {return new Byd();} else {return null;}}// 简单工厂的第二种实现方式public static Car createAudi() {return new Audi();}public static Car createByd() {return new Byd();}}package com.iter.devbox.factory.simplefactory;public class Client {public static void main(String[] args) {Car audi = CarFactory.createCar("奥迪");audi.run();Car byd = CarFactory.createByd();byd.run();}}
工厂方法模式
package com.iter.devbox.factory.factorymethod;public interface Car {public void run();}package com.iter.devbox.factory.factorymethod;public class Audi implements Car {public void run() {System.out.println("奥迪在跑");}}package com.iter.devbox.factory.factorymethod;public class Byd implements Car {public void run() {System.out.println("比亚迪在跑");}}package com.iter.devbox.factory.factorymethod;public class Benz implements Car {public void run() {System.out.println("奔驰在跑");}}package com.iter.devbox.factory.factorymethod;public interface CarFactory {public Car createCar();}package com.iter.devbox.factory.factorymethod;public class AudiFactory implements CarFactory {public Car createCar() {return new Audi();}}package com.iter.devbox.factory.factorymethod;public class BydFactory implements CarFactory {public Car createCar() {return new Byd();}}package com.iter.devbox.factory.factorymethod;public class BenzFactory implements CarFactory {public Car createCar() {return new Benz();}}package com.iter.devbox.factory.factorymethod;public class Client {public static void main(String[] args) {Car audi = new AudiFactory().createCar();audi.run();Car byd = new BydFactory().createCar();byd.run();Car benz = new BenzFactory().createCar(); // 新增加的产品benz.run();}}
抽象工厂模式
package com.iter.devbox.factory.abstractfactory;public interface Engine {void run();void start();}class LuxuryEngine implements Engine {public void run() {System.out.println("Engine 转得快");}public void start() {System.out.println("Engine 启动快!可以自动启停!");}}class LowEngine implements Engine {public void run() {System.out.println("Engine 转得慢");}public void start() {System.out.println("Engine 启动慢!不能自动启停!");}}package com.iter.devbox.factory.abstractfactory;public interface Seat {void massage();}class LuxurySeat implements Seat {public void massage() {System.out.println("Seat 可以自动按摩!");}}class LowSeat implements Seat {public void massage() {System.out.println("Seat 不能按摩!");}}package com.iter.devbox.factory.abstractfactory;public interface Tyre {void revolve();}class LuxuryTyre implements Tyre {public void revolve() {System.out.println("Tyre 旋转不磨损");}}class LowTyre implements Tyre {public void revolve() {System.out.println("Tyre 旋转磨损快");}}package com.iter.devbox.factory.abstractfactory;public interface CarFactory {Engine createEngine();Seat createSeat();Tyre createTyre();}package com.iter.devbox.factory.abstractfactory;public class LuxuryCarFactory implements CarFactory {public Engine createEngine() {return new LuxuryEngine();}public Seat createSeat() {return new LuxurySeat();}public Tyre createTyre() {return new LuxuryTyre();}}package com.iter.devbox.factory.abstractfactory;public class LowCarFactory implements CarFactory {public Engine createEngine() {return new LowEngine();}public Seat createSeat() {return new LowSeat();}public Tyre createTyre() {return new LowTyre();}}package com.iter.devbox.factory.abstractfactory;public class Client {public static void main(String[] args) {CarFactory factory = new LuxuryCarFactory();Engine engine = factory.createEngine();engine.run();engine.start();Seat seat = factory.createSeat();seat.massage();Tyre tyre = factory.createTyre();tyre.revolve();}}
3 0
- Java设计模式(三):工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
- 设计模式 - 工厂模式(简单,工厂方法,抽象工厂)
- Java工厂模式(简单工厂、工厂方法、抽象工厂)
- 工厂模式(简单工厂模式, 工厂方法模式, 抽象工厂模式)三
- Java设计模式--工厂模式(简单工厂+工厂方法)
- Java设计模式-工厂模式(简单工厂+工厂方法)
- Java设计模式---工厂模式(简单工厂、工厂方法、抽象工厂)
- Java设计模式之工厂模式(简单工厂、工厂方法、抽象工厂)
- Java设计模式——工厂模式(简单工厂、工厂方法 、抽象工厂 )
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- java设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- JAVA设计模式之工厂模式(简单工厂模式+工厂方法模式+抽象工厂模式)
- NSMutableAttributedString
- 向glide致敬,自己写Gif动图加载框架
- django入门教程(二)简单的博客系统
- 成为Java高手的25个学习要点
- 每天一个linux命令-rm
- Java设计模式(三):工厂模式(简单工厂模式、工厂方法模式、抽象工厂模式)
- java输出所有的字符编码
- S-Function 使用及应用举例
- WIN7X64自定义硬断
- Servlet中获取ServletContext(jsp中application)
- win7添加打印机
- android视频播放(二) 利用android原生的MediaPlayer+SurfaceView
- codeforces_667D. World Tour
- 第6章 应用逻辑顺序