工厂模式
工厂模式模式(factory pattern)是一种被广泛使用的设计模式,它能够实现类的使用者与类的实现者之间的松耦合关系。
1.在客户端程序中不再使用new运算符来创建接口的实现类的对象,而是使用工厂的方法来获取对象。
2.客户端只依赖于接口和工厂,替换了实现类只需修改工厂即可,对客户端没有任何影响。

接口:
import java.util.Date; public interface TimePrinter { void print(Date time); }
实现接口的类
import java.text.*; import java.util.*; public class SchedualedTimePrinter implements TimePrinter { @Override public void print(Date time) { // TODO Auto-generated method stub DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); System.out.println(df.format(time)); try{ Thread.sleep(1000); } catch (InterruptedException e) { e. printStackTrace(); } } }
import java.text.*; import java.util.*; public class SimpleTimePrinter implements TimePrinter { @Override public void print(Date time) { DateFormat df = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); System.out.println(df.format(time)); } }
工厂类
public class TimePrinterFactory { public static TimePrinter getTimePrinter() { return new SimpleTimePrinter(); } public static TimePrinter getSchedualedTimePrinter() { return new SchedualedTimePrinter(); } }
服务类
import java.util.*; public class Server { private TimePrinter printer; public void setTimePrinter(TimePrinter printer) { this.printer= printer; } public void start() { for(int i = 1; i <= 10; i++) { Date now = new Date(); printer.print(now); } } }
客户端操作类
public class Client { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub Server s = new Server(); TimePrinter printer = TimePrinterFactory.getSchedualedTimePrinter(); s.setTimePrinter(printer); s.start(); }
 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号