Skip to content

Instantly share code, notes, and snippets.

Round Trip Flight tickets for Udaipur & Delhi is booked under package Platinum
Hotel booked at Udaipur under package Platinum
Shuttle is booked under package Platinum
A guide is booked for sightseeing at Udaipur
@jainnancy
jainnancy / GuideBooking.scala
Created December 9, 2018 19:15
GuideBooking class for facade design pattern
package subsystems
class GuideBooking {
def bookGuide(destination : String) : Unit = {
System.out.println("A guide is booked for sightseeing at " + destination)
}
}
@jainnancy
jainnancy / ShuttleBooking.scala
Created December 9, 2018 19:15
ShuttleBooking class for facade design pattern
package subsystems
class ShuttleBooking {
def bookShuttle(tourPackage : String) : Unit = {
println("Shuttle is booked under package " + tourPackage)
}
}
@jainnancy
jainnancy / HotelBooking.scala
Created December 9, 2018 19:14
HotelBooking class for facade design pattern
package subsystems
class HotelBooking {
def bookHotel(tourPackage : String, destination : String) : Unit = {
println("Hotel booked at " + destination+ " under package " + tourPackage)
}
}
@jainnancy
jainnancy / TicketBooking.scala
Created December 9, 2018 19:14
TicketBooking class for facade design pattern
package subsystems
class TicketBooking {
def bookFlight(tourPackage : String, destination : String, departure : String) : Unit = {
println("Round Trip Flight tickets for " + destination + " & " + departure + " is booked under package " + tourPackage)
}
}
@jainnancy
jainnancy / TourAndTravelFacade.scala
Created December 9, 2018 19:13
TourAndTravelFacade class for facade design pattern
package facade
import subsystems.{ShuttleBooking, GuideBooking, HotelBooking, TicketBooking}
class TourAndTravelFacade
{
val ticketBooking = new TicketBooking
val hotelBooking = new HotelBooking
val cabBooking = new ShuttleBooking
val guideBooking = new GuideBooking
@jainnancy
jainnancy / Client.scala
Created December 9, 2018 19:12
Client class for facade design pattern
package app
import facade.TourAndTravelFacade
object Client extends App
{
val facade = new TourAndTravelFacade
val tourPackage = "Platinum"
val destination = "Udaipur"
val departure = "Delhi"
package com.knoldus
import org.slf4j.{Logger, LoggerFactory, Marker}
object LoggerProxy extends Logger {
private var logger : Logger = _
private val loggerHelper = new LoggerHelper
def getLogger(name : String) : Logger = {
logger = LoggerFactory.getLogger(name)
@jainnancy
jainnancy / LoggerHelper.scala
Created August 31, 2018 06:10
The LoggerHelper class will scramble the logs.
package com.knoldus
class LoggerHelper {
private val regex = "\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b"
private val password = "Password: "
private val userName = "UserName: "
def scramble(message : String) = scrambleUsername(scrambleIp((scramblePassword(message))))
private def scrambleUsername(message : String) = {
@jainnancy
jainnancy / Client.scala
Created August 31, 2018 06:09
Client class is the class which will actually call the logging methods.
package com.knoldus
object Client extends App {
val logger = LoggerProxy.getLogger(this.getClass.getName)
logger.info("Log Contains IP address: 127.0.0.1")
logger.debug("UserName: jainnancy trying to sign in")
logger.error("Password: abxyz is wrong ")
}