#108 Consistent package naming throughout the examples

This commit is contained in:
Ilkka Seppala
2015-07-24 11:32:22 +03:00
parent af92d8dde5
commit 3d488ec15a
128 changed files with 963 additions and 873 deletions

View File

@ -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();
}
}

View File

@ -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();
}
}

View File

@ -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();
}
}
}

View File

@ -0,0 +1,11 @@
package com.iluwatar.business.delegate;
/**
*
* Interface for service implementations
*
*/
public interface BusinessService {
void doProcessing();
}

View File

@ -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();
}
}

View File

@ -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");
}
}

View File

@ -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");
}
}

View File

@ -0,0 +1,11 @@
package com.iluwatar.business.delegate;
/**
*
* Enumeration for service types
*
*/
public enum ServiceType {
EJB, JMS;
}