工厂(二)

来源:互联网 发布:珠海市香洲区人口数据 编辑:程序博客网 时间:2024/05/16 02:57

使用匿名内部类,简化工厂方法

package com.yjq.factory;public class FactoryContext {public static void main(String[] args) {Service s1 = FactoryContext.getService(Service1.sf);s1.update1();s1.update2();System.out.println("------------");Service s2 = FactoryContext.getService(Service1.sf);s2.update1();s2.update2();}public static Service getService(ServiceFactory sf) {return sf.getService();}}interface Service {void update1();void update2();}interface ServiceFactory {Service getService(); }class Service1 implements Service {private Service1() {}public static ServiceFactory sf = new ServiceFactory() {@Overridepublic Service getService() {return new Service1();}};@Overridepublic void update1() {System.out.println("Service1.update1()");}@Overridepublic void update2() {System.out.println("Service1.update2()");}}class Service2 implements Service {private Service2() {}public static ServiceFactory sf = new ServiceFactory() {@Overridepublic Service getService() {return new Service2();}};@Overridepublic void update1() {System.out.println("Service2.update1()");}@Overridepublic void update2() {System.out.println("Service2.update2()");}}

原创粉丝点击