Answer All of the Following Questions Important Notes: • For the required programs, you must build the design (class diagram) for the application as well as writing programming code. • Each program must be complete and operational and has a capability for providing GUI input/output. • You can write your programs in Java (or PHP) programming language. • Only answers that supported by Video (electronic presentation) are accepted. Suppose you are working on a bank application: 1. Write a program for implementing State design patten for four states of customer account; Initiated, Open, Active and Blocked. 2. Write a program for building a Strategy design pattern for calculating the account balance in three currencies; JD, USD and Euro. 3. Write a program for applying Visitor design pattern by defining Visitor class that includes operations on a bank customer who owns three types of accounts; Checking, Saving and Merchant. 4. Write a program for applying Observer design pattern that shows the account balance in three GUI views; JD, USD and Euro. The views will be automatically updated when the account balance is changed. 5. Write a program for applying MVC design pattern for storing and viewing bank customer information. The customer information include name, address, date of birth and account number.