@startuml
package com.iluwatar.loan-pattern {
  class App {
    + readFile(String fileName) {static}
    + writeFile(String fileName) {static}
    + main(args : String[]) {static}
  }
  class Lender {
    + writeUsing(String fileName, WriteBlock block) {static}
    + readUsing(String fileName, ReadBlock block) {static}
  }
  interface ReadBlock {
    + call(BufferedReader reader)
  }
  interface WriteBlock {
    + call(BufferedWriter writer)
   }
}
App --> Lender
Lender -->  ReadBlock
Lender -->  WriteBlock
@enduml