Java 简单的静态工厂模式

来源:互联网 发布:手机号码搜索软件 编辑:程序博客网 时间:2024/05/18 22:42

工厂模式是学习java的重中之重,这是我就代码一下;

package com.example.string.PrinterFactory;public class Test {/** * @param args */public static void main(String[] args) {     int flag = 1;        Printer printer = PrinterFactory.getPrinter(flag);        printer.open();        printer.print("对象的转型好用吧~");        printer.close();} }package com.example.string.PrinterFactory; public class PrinterFactory {//添加static是为了调用方便    public static Printer getPrinter(int flag) {    Printer printer = null;    if(flag == 0) {        printer = new HPPrinter();    } else if(flag == 1) {        printer = new CanonPrinter();    }            return printer;}  }package com.example.string.PrinterFactory;public interface Printer {void open();void print(String s);void close();}package com.example.string.PrinterFactory;public class HPPrinter implements Printer {public void open() {    System.out.println("HP: open");}public void print(String s) {    System.out.println("HP: print--> " + s);}public void close() {    System.out.println("HP: close");} }package com.example.string.PrinterFactory;public class CanonPrinter implements Printer {public void open() {    System.out.println("Canon: open");}public void print(String s) {    System.out.println("Canon: print-->" + s);}public void close() {    this.clean();    System.out.println("Canon: close");}public void clean() {    System.out.println("Canon: clean");} }

这就是简单的静态工程模式;
PrinterFactory并不关心Printer类有多少个子类,这样我们就能够自由地修改Printer子类了。
工厂方法模式的思路很简单,就是把生成对象的代码,封装在工厂类当中。

0 0
原创粉丝点击