功能:
过程:
- 接口 Service(两个方法)
- 接口ServiceFactory(获取Service方法)
- 类Implementation1实现Service(空构造函数)
- 类Implementation1Factory实现ServiceFactory
- 类Implementation2实现Service(空构造函数)
- 类Implementation2Factory实现ServiceFactory
- 主类Factories:
(定义静态方法serviceConsumer,调用Service两个方法)
主方法:调用Implementation1,Implementation2中方法
个人实现:
package thinking;
interface Service{
void method1();
void method2();
}
interface ServiceFactory{
Service getService();
}
class Implementation1 implements Service{
@Override
public void method1() {
System.out.println("Implementation1's method1");
}
@Override
public void method2() {
// TODO Auto-generated method stub
System.out.println("Implementation1's method2");
}
Implementation1(){};
}
class Implementation1Factory implements ServiceFactory{
//卡在这
@Override
public Service getService() {
// TODO Auto-generated method stub
return new Implementation1();
}
}
class Implementation2 implements Service{
@Override
public void method1() {
System.out.println("Implementation2's method1");
}
@Override
public void method2() {
// TODO Auto-generated method stub
System.out.println("Implementation2's method2");
}
Implementation2(){};
}
class Implementation2Factory implements ServiceFactory{
@Override
public Service getService() {
// TODO Auto-generated method stub
return new Implementation2();
}
}
//写错置于最外层。卡--抄书
public class Factories {
public static void serviceConsumer(ServiceFactory serviceFactory){
Service service = serviceFactory.getService();
service.method1();
service.method2();
}
public static void main(String[] args) {
serviceConsumer(new Implementation1Factory());
serviceConsumer(new Implementation2Factory());
}
}
原书实现:
同