设计模式之静态工厂模式
2015-09-13 12:38
260 查看
public interface Printer {
public abstract void open();
public abstract void close();
public abstract void print();
}
public class HPPrinter implements Printer {
@Override
public void open() {
System.out.println("HPPrinter open");
}
@Override
public void close() {
System.out.println("HPPrinter close");
}
@Override
public void print() {
System.out.println("HPPrinter print");
}
}
public class HWPrinter implements Printer {
@Override
public void open() {
System.out.println("HWPrinter open");
}
@Override
public void close() {
System.out.println("HWPrinter open");
}
@Override
public void print() {
System.out.println("HWPrinter open");
}
}
public class FactoryPrinter {
public static Printer getPrinter(int arg) {
Printer printer = null;
if(arg == 0) {
printer = new HPPrinter();
}
else if(arg == 1) {
printer = new HWPrinter();
}
return printer;
}
}
public class Computer
{
private Printer printer;
public Computer(Printer printer)
{
this.printer = printer;
}
//定义一个模拟打印的方法
public void print()
{
printer.print();
}
}
public class Test {
public static void main(String[] args) {
Printer printer = null;
int flag = 0;
printer = FactoryPrinter.getPrinter(flag);
Computer computer = new Computer(printer);
computer.print();
}
}
public abstract void open();
public abstract void close();
public abstract void print();
}
public class HPPrinter implements Printer {
@Override
public void open() {
System.out.println("HPPrinter open");
}
@Override
public void close() {
System.out.println("HPPrinter close");
}
@Override
public void print() {
System.out.println("HPPrinter print");
}
}
public class HWPrinter implements Printer {
@Override
public void open() {
System.out.println("HWPrinter open");
}
@Override
public void close() {
System.out.println("HWPrinter open");
}
@Override
public void print() {
System.out.println("HWPrinter open");
}
}
public class FactoryPrinter {
public static Printer getPrinter(int arg) {
Printer printer = null;
if(arg == 0) {
printer = new HPPrinter();
}
else if(arg == 1) {
printer = new HWPrinter();
}
return printer;
}
}
public class Computer
{
private Printer printer;
public Computer(Printer printer)
{
this.printer = printer;
}
//定义一个模拟打印的方法
public void print()
{
printer.print();
}
}
public class Test {
public static void main(String[] args) {
Printer printer = null;
int flag = 0;
printer = FactoryPrinter.getPrinter(flag);
Computer computer = new Computer(printer);
computer.print();
}
}
相关文章推荐
- win10 关键错误开始菜单和cortana无法工作 的问题
- grep及正则表达式
- [原创] python下 opencv图像减法测试
- FL2440字符设备驱动之LED
- [Sqlite] Sqlite的基本日常SQL操作语句汇总
- 文《左右c++与java中国的垃圾问题的分析与解决》一bug分析
- 【工作总结】工作三年半的不归路,希望新人借鉴
- Shell公共函数:/etc/init.d/functions详解
- 数据库范式详解
- 重拾链表
- 第二周 项目3-体验复杂度(1)
- ccf z型扫描
- sed基本用法
- 灰常大的熊
- JAVA中的UUID
- ./scripts/feeds update -a执行失败
- 陌陌文件号登陆方法
- Unity使用 ShareSDK 分享Android篇
- 算法思想:维护而非重新计算
- 配置Log4j(很详细)