Всем привет. Есть интерфейс
public interface AuthorizationService {
void send(User user) throws IOException;
Respond getRespond() throws IOException, ClassNotFoundException;
ObjectOutputStream getOut();
void setOut(ObjectOutputStream out);
ObjectInputStream getIn();
void setIn(ObjectInputStream in);
}
Его реализует класс
package com.eleshchinskiy.service.impl;
import com.eleshchinskiy.service.AuthorizationService;
import com.eleshchinskiy.service.bean.Respond;
import com.eleshchinskiy.service.bean.real.User;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class AuthorizationServiceImpl implements AuthorizationService {
private ObjectOutputStream out;
private ObjectInputStream in;
public AuthorizationServiceImpl(){
}
@Override
public void send(User user) throws IOException {
out.writeObject(user);
out.flush();
}
@Override
public Respond getRespond() throws IOException, ClassNotFoundException {
return (Respond) in.readObject();
}
@Override
public ObjectOutputStream getOut() {
return out;
}
@Override
public void setOut(ObjectOutputStream out) {
this.out = out;
}
@Override
public ObjectInputStream getIn() {
return in;
}
@Override
public void setIn(ObjectInputStream in) {
this.in = in;
}
}
Этот объект можно получить в фабрике
package com.eleshchinskiy.service.factory;
import com.eleshchinskiy.service.AdminMenuService;
import com.eleshchinskiy.service.AuthorizationService;
import com.eleshchinskiy.service.UserMenuService;
import com.eleshchinskiy.service.impl.AdminMenuServiceImpl;
import com.eleshchinskiy.service.impl.AuthorizationServiceImpl;
import com.eleshchinskiy.service.impl.UserMenuServiceImpl;
public class ServiceFactory {
private static final ServiceFactory instance = new ServiceFactory();
private AuthorizationService authorizationService = new AuthorizationServiceImpl();
private UserMenuService userMenuService = new UserMenuServiceImpl();
private AdminMenuService adminMenuService = new AdminMenuServiceImpl();
private ServiceFactory() {
}
public AuthorizationService getAuthorizationService() {
return authorizationService;
}
public UserMenuService getUserMenuService() {
return userMenuService;
}
public AdminMenuService getAdminMenuService() {
return adminMenuService;
}
public static ServiceFactory getInstance() {
return instance;
}
}
Все вроде бы отлично, но в интерфейсе нельзя прописывать геттеры и сеттеры. Однако если я этого не сделаю, то когда получу объект типа интерфейс, то не смогу установить/получить его поля. Как это решается?