#108 Consistent package naming throughout the examples
This commit is contained in:
@ -0,0 +1,31 @@
|
||||
package com.iluwatar.business.delegate;
|
||||
|
||||
/**
|
||||
*
|
||||
* The Business Delegate pattern adds an abstraction layer between presentation and business tiers.
|
||||
* By using the pattern we gain loose coupling between the tiers. The Business Delegate encapsulates
|
||||
* knowledge about how to locate, connect to, and interact with the business objects that make up
|
||||
* the application.
|
||||
*
|
||||
* Some of the services the Business Delegate uses are instantiated directly, and some can be retrieved
|
||||
* through service lookups. The Business Delegate itself may contain business logic too potentially tying
|
||||
* together multiple service calls, exception handling, retrying etc.
|
||||
*
|
||||
* In this example the client (Client) utilizes a business delegate (BusinessDelegate) to execute a task.
|
||||
* The Business Delegate then selects the appropriate service and makes the service call.
|
||||
*
|
||||
*/
|
||||
public class App {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
BusinessDelegate businessDelegate = new BusinessDelegate();
|
||||
businessDelegate.setServiceType(ServiceType.EJB);
|
||||
|
||||
Client client = new Client(businessDelegate);
|
||||
client.doTask();
|
||||
|
||||
businessDelegate.setServiceType(ServiceType.JMS);
|
||||
client.doTask();
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.iluwatar.business.delegate;
|
||||
|
||||
/**
|
||||
*
|
||||
* BusinessDelegate separates presentation and business tiers
|
||||
*
|
||||
*/
|
||||
public class BusinessDelegate {
|
||||
|
||||
private BusinessLookup lookupService = new BusinessLookup();
|
||||
private BusinessService businessService;
|
||||
private ServiceType serviceType;
|
||||
|
||||
public void setServiceType(ServiceType serviceType) {
|
||||
this.serviceType = serviceType;
|
||||
}
|
||||
|
||||
public void doTask() {
|
||||
businessService = lookupService.getBusinessService(serviceType);
|
||||
businessService.doProcessing();
|
||||
}
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
package com.iluwatar.business.delegate;
|
||||
|
||||
/**
|
||||
*
|
||||
* Class for performing service lookups
|
||||
*
|
||||
*/
|
||||
public class BusinessLookup {
|
||||
|
||||
public BusinessService getBusinessService(ServiceType serviceType) {
|
||||
if (serviceType.equals(ServiceType.EJB)) {
|
||||
return new EjbService();
|
||||
} else {
|
||||
return new JmsService();
|
||||
}
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.iluwatar.business.delegate;
|
||||
|
||||
/**
|
||||
*
|
||||
* Interface for service implementations
|
||||
*
|
||||
*/
|
||||
public interface BusinessService {
|
||||
|
||||
void doProcessing();
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.iluwatar.business.delegate;
|
||||
|
||||
/**
|
||||
*
|
||||
* Client utilizes BusinessDelegate to call the business tier
|
||||
*
|
||||
*/
|
||||
public class Client {
|
||||
|
||||
private BusinessDelegate businessDelegate;
|
||||
|
||||
public Client(BusinessDelegate businessDelegate) {
|
||||
this.businessDelegate = businessDelegate;
|
||||
}
|
||||
|
||||
public void doTask() {
|
||||
businessDelegate.doTask();
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.iluwatar.business.delegate;
|
||||
|
||||
/**
|
||||
*
|
||||
* Service EJB implementation
|
||||
*
|
||||
*/
|
||||
public class EjbService implements BusinessService {
|
||||
|
||||
@Override
|
||||
public void doProcessing() {
|
||||
System.out.println("EjbService is now processing");
|
||||
}
|
||||
}
|
@ -0,0 +1,14 @@
|
||||
package com.iluwatar.business.delegate;
|
||||
|
||||
/**
|
||||
*
|
||||
* Service JMS implementation
|
||||
*
|
||||
*/
|
||||
public class JmsService implements BusinessService {
|
||||
|
||||
@Override
|
||||
public void doProcessing() {
|
||||
System.out.println("JmsService is now processing");
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.iluwatar.business.delegate;
|
||||
|
||||
/**
|
||||
*
|
||||
* Enumeration for service types
|
||||
*
|
||||
*/
|
||||
public enum ServiceType {
|
||||
|
||||
EJB, JMS;
|
||||
}
|
Reference in New Issue
Block a user