Click here to watch in Youtube : https://www.youtube.com/watch?v=Q2L3FGnjPu0
Click the below Image to Enlarge
Bridge Design pattern - Implementation [Publish Message] |
Bridge Design pattern - Implementation [Publish Message] - Class Diagram |
MessagePublisher.java
public interface MessagePublisher
{
public void publishMessage(String message);
}
Facebook.java
public class Facebook implements MessagePublisher
{
public void publishMessage(String message)
{
System.out.println("'"+message+ "' : This message has been published to public in Facebook Social networking site");
}
}
Twitter.java
public class Twitter implements MessagePublisher
{
public void publishMessage(String message)
{
System.out.println("'"+message+ "' : This message has been published to public in Twitter Social networking site");
}
}
GooglePlus.java
public class GooglePlus implements MessagePublisher
{
public void publishMessage(String message)
{
System.out.println("'"+message+ "' : This message has been published to public in GooglePlus Social networking site");
}
}
Message.java
abstract class Message
{
protected MessagePublisher messagePublisher;
protected MessagePublisher getMessagePublisher()
{
return messagePublisher;
}
protected void setMessagePublisher( MessagePublisher messagePublisher )
{
this.messagePublisher = messagePublisher;
}
abstract public void publishMessage(String message);
}
LongMessage.java
public class LongMessage extends Message
{
@Override
public void publishMessage( String message )
{
messagePublisher.publishMessage(message);
}
}
ShortMessage.java
public class ShortMessage extends Message
{
private static int MESSAGE_LENGTH = 200;
@Override
public void publishMessage( String message )
{
if( message.length() <= MESSAGE_LENGTH )
{
messagePublisher.publishMessage(message);
}
else
{
System.out.println("Sorry message length is more cann't publish.....");
}
}
}
Client.java
import java.util.Scanner;
public class Client
{
public static void main( String[] args )
{
System.out.println("Please enter the Social networking site you want to use to publish the message : 'Twitter' or 'Facebook' or 'GooglePlus'");
Scanner scanner = new Scanner(System.in);
String socialNetworkingSite = scanner.next();
System.out.println("Please enter the message you want to publish");
Scanner scanner1 = new Scanner(System.in);
String message = scanner1.nextLine();
if( "Twitter".equalsIgnoreCase(socialNetworkingSite) )
{
ShortMessage shortMessage = new ShortMessage();
shortMessage.setMessagePublisher(new Twitter());
shortMessage.publishMessage(message);
}
else if( "Facebook".equalsIgnoreCase(socialNetworkingSite) )
{
LongMessage longMessage = new LongMessage();
longMessage.setMessagePublisher(new Facebook());
longMessage.publishMessage(message);
}
else if( "GooglePlus".equalsIgnoreCase(socialNetworkingSite) )
{
LongMessage longMessage = new LongMessage();
longMessage.setMessagePublisher(new GooglePlus());
longMessage.publishMessage(message);
}
}
}
Output
Please enter the Social networking site you want to use to publish the message : 'Twitter' or 'Facebook' or 'GooglePlus'
Twitter
Please enter the message you want to publish
hello
'hello' : This message has been published to public in Twitter Social networking site
Please enter the Social networking site you want to use to publish the message : 'Twitter' or 'Facebook' or 'GooglePlus'
Facebook
Please enter the message you want to publish
hello bow are you?
'hello bow are you?' : This message has been published to public in Facebook Social networking site
See also:
No comments:
Post a Comment