cs

profilehena
import Foundation
protocol TaksPerformer {
   func doAThing()
}
class Employee: TaksPerformer {
   let name: String
   var boss: Boss?

init(name: String) { self.name = name

}

   func doAThing() {
       print("\(name) is doing a thing")

} }

class Boss {
   var employee: Employee
   let name: String

init(name: String, employee: Employee) { self.name = name
self.employee = employee employee.boss = self

}

func actLikeABoss() { employee.doAThing()

} }

// 1)
//     A) What is wrong with the current implementation of Boss and Employee,
why is it wrong, and how can we demonstrate that there is an issue?
//

// B) What pattern discussed in class does the Boss - Employee relationship remind you of? Give an example of the discussed pattern.

//

  • //      C) Create a Person class that has the following property: 
  • //             let name: String 
  • //         Now have Employee and Boss inherit from Person // 
  • //      D) You realize that there are speciffic tasks you would like an
    employee to perform. All tasks look like this: // func makeCoffe(_ name: String) {

// print("\(name) made coffe")
// }
//
// func writeReport(_ name: String) {

//
//            }
//        Modify Boss, Employee and TaskPerformer in a way that a Boss can be
instantiated with the following constructor:
//            Boss(name: "Bossman", employee: anEmployee, tasks: [makeCoffe,

writeReport])
// The employee instance should perform the tasks.

// 2)
//    Create a small app that takes user input and performs a useful

calculation with that user input
// - Using techniques we learned in class, make sure that absolutely no

input crashes the app.
// - Use layout constraints to make sure the app looks good in

portraint and landscape mode, as well as on small and large devices.

  • //  - Use MVC
  • //  - Bonus: Write unit tests for your model to make sure no input can
    crash the app.
    // 3) You created a bookshelf.
//     A) How could you modify Shelve with a technique discussed in class so
that you can create Shelve instances that contain
  • //         Tools, Dishes or any other kind of object? 
  • //      B) Create a function that takes in two shelves of the same type and
    swaps their items
    struct Book {     let title: String
    }
    struct Shelve {     var top: Book
       var center: Book
       var bottom: Book } 
print("\(name) wrote a report")
    • 6 years ago
    • 12
    Answer(0)