Presentation is loading. Please wait.

Presentation is loading. Please wait.

Week 5, Day 3: Decorator Decorators Muddiest Point Tomorrow: Quiz on lab reading: https://faculty- web.msoe.edu/hasker/se2811/labs/5/ SE-2811 Slide design:

Similar presentations


Presentation on theme: "Week 5, Day 3: Decorator Decorators Muddiest Point Tomorrow: Quiz on lab reading: https://faculty- web.msoe.edu/hasker/se2811/labs/5/ SE-2811 Slide design:"— Presentation transcript:

1 Week 5, Day 3: Decorator Decorators Muddiest Point Tomorrow: Quiz on lab reading: https://faculty- web.msoe.edu/hasker/se2811/labs/5/ SE-2811 Slide design: Dr. Mark L. Hornick Content: Dr. Hornick Errors: Dr. Yoder 1

2 General Pattern SE-2811 Dr. Mark L. Hornick Wikipedia 2

3 Ex 2: Bikes SE-2811 Dr. Mark L. Hornick 3

4 Ex 3: Employees SE-2811 Dr. Mark L. Hornick http://zishanbilal.files.wordpress.com/2011/04/042811_2030_designpatte31.png 4

5 Ex 4: (Byte) Input Streams SE-2811 Dr. Mark L. Hornick 5

6 Knowing that the input stream classes are based on the Decorator pattern can make things easier SE-2811 Dr. Mark L. Hornick 6 >

7 Ex 5: (Byte) Output Streams SE-2811 Dr. Mark L. Hornick 7 (with other Variables…)

8 Ex 6: (Char) Writers OutputStream s write (8-bit) byte s. Writer s write 16-bit Unicode code-points You can wrap a PrintWriter around a PrintStream You cannot wrap a PrintStream around a PrintWriter (unless you write the code yourself.) SE-2811 Dr. Mark L. Hornick 8

9 Implementing a new Writer decorator See example code SE-2811 Dr. Mark L. Hornick 9

10 In-class exercise: Modify the code to de-scramble the stream Writer writer = new ScrambleWriter(new StarInserter(new PrintWriter( System.out)))); //------- Your code here: --------- //------- End your code ---------- PrintWriter printWriter = new PrintWriter(writer,true); SE-2811 Dr. Mark L. Hornick 10

11 HW By Monday at 10am, email to me a Writer decorator that implements a Caesar cipher. The user should supply an integer key when creating the wrapper The CaesarWriter should add the key to the value of each character that is written to the stream. If the value goes above 255, it should wrap around through 0. Be sure to include the template write(String str, int off, int len) from ScrambleWriter We will run and debug your code in class. 11

12 Design Principles F Reduce coupling T Increase cohesion ? Encapsulate what varies F Favor composition over inheritance T Program to interfaces, not implementations T Classes should be open for extension but closed for modification Which of these are met? SE-2811 Dr. Mark L. Hornick 12

13 Downsides What are the disadvantages of decorators? SE-2811 Dr. Mark L. Hornick 13

14 SE-2811 Dr. Mark L. Hornick 14

15 Threading Muddiest Point [To be revisited in a future lecture] All lambda examples the same code? Lambda examples When would you use a Lambda expression over an anonymous class and vice versa? Lambda vs. Anon inner syntax The Lambda is a Java thing, not an intelliJ thing right?Java 8 whens the next quiz?Quiz Agree Lambda examples More examples of using lambdas (didn't get exposure in software dev 2) Lambda examples Effectively Final? "Effectively Final" SE-2811 Dr. Mark L. Hornick 15

16 Patterns Muddiest Point [To be revisited in a future leture] We really didn't cover any sorting algorithms and what each's benefits are Can we do an example??? Related to the quiz for below question Do we need to implement code versions of the strategy and factory method patterns?? If so how extensive and will it be similar to how we implemented in class? Implementing the methods needed for the factory method pattern. Is there a flowchart/checklist to determine which pattern is more appropriate to use? Choosing the correct design pattern What are Coupling and Cohesion and is it better to have high or low coupling or cohesion? On a quiz/test would you ask us to draw the uml of a particular general pattern, or would you just ask us to write the code? Why would we use Factory Pattern? How do you know when to use what pattern to solve a problem? Diagrams High/Low Cohesion/Coupling Class Diagram for Factory Design Pattern Nothing 16


Download ppt "Week 5, Day 3: Decorator Decorators Muddiest Point Tomorrow: Quiz on lab reading: https://faculty- web.msoe.edu/hasker/se2811/labs/5/ SE-2811 Slide design:"

Similar presentations


Ads by Google