Studying software design patterns is an effective way to learn from the experience of others
|
|
- Rosemary Mills
- 6 years ago
- Views:
Transcription
1 Studying software design patterns is an effective way to learn from the experience of others 1
2 Parties have different ways of presenting the results. Presentation of results Coupling Computation of results For example, if you wanted to reuse bar chart code, you would need to take the computational class, since they are coupled. If the presentation classes and computation classes are coupled, then can t reuse one without dragging along the other. Application runs algorithms on data, and produces the results: a, b, and c. How should the results be communicated to the interested parties? 2
3 Description Context: When associations are created between two classes, the code for the classes becomes inseparable (coupled): Compiling one requires compiling the other. Reusing one requires reusing the other. Changing one likely requires changing the other. Issues: Consequences of coupling. How do you reduce the interconnection between classes, especially between classes that belong to different modules or subsystems? Removing interconnection implies removing association. When interconnection is removed, how can the classes communicate? You want to minimize the coupling, but maintain usability. 3
4 The Observer Pattern The Problem Balancing of Forces (Tradeoff) DataSupplier DataUser In order to design the DataSupplier and DataUser for reusability separately and independently need to remove the association. But, how can you do this and still maintain usability? 4
5 Intermediate Solution (Anti-pattern) «Observable» addobserver notifyobservers * * «interface» «Observer» update Level 2 Level 1 «ConcreteObservable» «ConcreteObserver» The user application has two layers of software, Level 2 and Level 1. The application adds observers by invoking addobserver in Level 2 for each observer in Level 1 that is interested in the data of the observerable in Level 1. Whenever a Level 1 observable s data has changed, the observable invokes notifyobservers in Level 2. The Level 2 method notifyobservers invokes the update method of each observer that is registered to receive data updates from the observable. 5
6 Intermediate Solution (Anti-pattern) «Observable» addobserver notifyobservers * * «interface» «Observer» update Level 2 Level 1 «ConcreteObservable» «ConcreteObserver» The components ConcreteObservable and ConcreteObserver may be reused independently, since there is no direct association between them: In one application, many different Level 1 implementations may exist, and only one level 2 is required. For example, the following apps can share the Level 2 code: An app in which a WeatherForecaster has many different kinds of WeatherViewers An app in which Mouse events have many different watchers. An app in which Keyboard events have many different watchers. However, reusing a component requires the software in which it is reused has Level 2. The problem is that this requires sharing the Level 2 implementation, which would be okay if applied in the same application, but is problematic when applied across different applications/platforms. 6
7 The Best Solution «Observable» addobserver notifyobservers * * «interface» «Observer» update Compiler Layer Application Layer «ConcreteObservable» «ConcreteObserver» Level 2 is implemented by the compiler: For example, Java provides Observable and Observer classes: i.e., Java implements the Observer Pattern. This is a better solution than the previous anti-pattern, but note that it requires the reusable components use the Java compiler. This is reasonable, if the components and different applications are written in Java. 7
8 Example: Observable Keyboard «Observable» addobserver notifyobservers setchanged Keyboard * * MyApp «interface» «Observer» update KBHandler update Java Compiler Layer myapp Layer «interface» Runnable MyApp registers KBHandler as an observer of the observable Keyboard. The observable Keyboard has a thread that continuously waits for and receives input from the Standard In (user input). When it receives user input, the thread calls setchanged and notifyobservers. Java s implementation of the Observable invokes the update method of the KBHandler and passes it the string received from the Observable. The update method the KBHandler processes the string in an application specific way. 8
9 import java.util.observable; import java.io.bufferedreader; import java.io.ioexception; import java.io.inputstreamreader; public class Keyboard extends Observable implements Runnable { public void run() { try { final InputStreamReader isr=new InputStreamReader(System.in); final BufferedReader br = new BufferedReader(isr); while (true) { String response = br.readline(); setchanged(); notifyobservers(response); catch (IOException e) { e.printstacktrace(); 9
10 import java.util.observable; import java.util.observer; /* this is Event Handler */ public class KBHandler implements Observer { private String userinput; public void update(observable obj, Object arg) { if (arg instanceof String) { userinput = (String) arg; //Do something with the string; 10
11 myapp CLASS (main METHOD) public class MyApp { public static void main(string[] args) { // create an observable thread reads from stdin final Keyboard mykbeventsource = new Keyboard(); // create an observer final KBHandler mykbhandler= new KBHandler(); // Register the observer to the observable mykbeventsource.addobserver(mykbhandler); // starts the event thread Thread thread = new Thread(myKBEventSource); thread.start(); 11
12 Keyboard class can be reused independently To reuse Keyboard, the KBHandler class is not required, since Keyboard has no association to KBHandler. In fact, Keyboard does not even know that KBHandler exists! Needs the Observer pattern in Java. KBHandler class can be reused independently To reuse the KBHandler, the Keyboard class is not required, since KBHandler has no association to Keyboard. In fact, KBHandler does not even know that Keyboard exists! Needs the Observer pattern in Java. MyApp class cannot be reused independently, since it has associations to Keyboard and KBHandler. However, MyApp shows how to implement Observables and Observers using Java s Observer Design Pattern. 12
13 Apply Observer Design Pattern to P2.3 Refactored Client «Observable» addobserver notifyobservers * * «interface» «Observer» update Compiler Layer Application Layer «ConcreteObservable» «ConcreteObserver» 13
14 << TCP/IP network, Data >> Server << TCP/IP network, Connection Request >> ClientTest UserCommandHandler myui myclient handleusercommand Client Client connecttoserver disconnectfromserver sendmessagetoserver isconnected stopthread setport getport sendmessagetoui run StandardIO mycommmandhandler setcommand getuserinput display run <<interface>> UserInterface update(string) ServerMessageHandler handleservermessage() 14
15 Steps 1. Identify the potential observables and observers in your application. 2. Redraw the UML class diagram to incorporate the observables and observers. For the observers, implement the update method. 3. Perform a reusability analysis. 15
Overloading Java Interface Callback Protocol User Command Handler Concurrent Thread
Overloading Java Interface Callback Protocol User Command Handler Concurrent Thread 1 Code refactoring is the process of changing a computer program s internal structure without modifying its external
More informationStudying software design patterns is an effective way to learn from the experience of others
Studying software design patterns is an effective way to learn from the experience of others Design Pattern allows the requester of a particular action to be decoupled from the object that performs the
More informationLecture 14: Design Patterns
2. Structural Patterns 2.2. Decorator Pattern Lecture 14: Design Patterns In object-oriented programming, the decorator pattern is a design pattern that allows behaviour to be added to an existing object
More informationAndroid Tutorial: Part 3
Android Tutorial: Part 3 Adding Client TCP/IP software to the Rapid Prototype GUI Project 5.2 1 Step 1: Copying the TCP/IP Client Source Code Quit Android Studio Copy the entire Android Studio project
More informationSolution register itself
Observer Pattern Context: One object (the Subject) is the source of events. Other objects (Observers) want to know when an event occurs. Or: several objects should be immediately updated when the state
More informationLecture 4: Exceptions. I/O
Lecture 4: Exceptions. I/O Outline Access control. Class scope Exceptions I/O public class Malicious { public static void main(string[] args) { maliciousmethod(new CreditCard()); } static void maliciousmethod(creditcard
More informationTuesday, October 4. Announcements
Tuesday, October 4 Announcements www.singularsource.net Donate to my short story contest UCI Delta Sigma Pi Accepts business and ICS students See Facebook page for details Slide 2 1 Design Patterns Design
More informationEach command-line argument is placed in the args array that is passed to the static main method as below :
1. Command-Line Arguments Any Java technology application can use command-line arguments. These string arguments are placed on the command line to launch the Java interpreter after the class name: public
More informationDesign Patterns: Part 2
Design Patterns: Part 2 ENGI 5895: Software Design Andrew Vardy with code samples from Dr. Rodrigue Byrne and [Martin(2003)] Faculty of Engineering & Applied Science Memorial University of Newfoundland
More informationOverview of Patterns
d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Topics Covered in this Module
More informationI/O STREAM (REQUIRED IN THE FINAL)
I/O STREAM (REQUIRED IN THE FINAL) STREAM A stream is a communication channel that a program has with the outside world. It is used to transfer data items in succession. An Input/Output (I/O) Stream represents
More informationInheritance E, xc Ex eptions ceptions I/O
Inheritance, Exceptions, I/O ARCS Lab. Inheritance Very Very Basic Inheritance Making a Game public class Dude { public String name; public int hp = 100 public int mp = 0; } public void sayname() { System.out.println(name);
More informationObserver Pattern. CS580 Advanced Software Engineering October 31, Yu Sun, Ph.D.
Observer Pattern CS580 Advanced Software Engineering http://cs356.yusun.io October 31, 2014 Yu Sun, Ph.D. http://yusun.io yusun@csupomona.edu Announcements Quiz 5 Singleton Pattern Abstract Factory Pattern
More informationInput & Output in Java. Standard I/O Exception Handling
Input & Output in Java Standard I/O Exception Handling Java I/O: Generic & Complex Java runs on a huge variety of plaforms to accomplish this, a Java Virtual Machine (JVM) is written for every type of
More informationFIFO PAGE REPLACEMENT : import java.io.*; public class FIFO {
FIFO PAGE REPLACEMENT : import java.io.*; public class FIFO public static void main(string[] args) throws IOException BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int frames,
More information6 The MVC model. Main concepts to be covered. Pattern structure. Using design patterns. Design pattern: Observer. Observers
Main concepts to be covered 6 The MVC model Design patterns The design pattern The architecture Using design patterns Inter-class relationships are important, and can be complex. Some relationship recur
More informationare most specifically concerned with
Observer Behavioral Patterns Behavioral patterns are those patterns that are most specifically concerned with communication between objects Introduction Name Observer Also Known As Dependents, Publish-Subscribe
More informationCOT 3530: Data Structures. Giri Narasimhan. ECS 389; Phone: x3748
COT 3530: Data Structures Giri Narasimhan ECS 389; Phone: x3748 giri@cs.fiu.edu www.cs.fiu.edu/~giri/teach/3530spring04.html Evaluation Midterm & Final Exams Programming Assignments Class Participation
More informationCS1092: Tutorial Sheet: No 3 Exceptions and Files. Tutor s Guide
CS1092: Tutorial Sheet: No 3 Exceptions and Files Tutor s Guide Preliminary This tutorial sheet requires that you ve read Chapter 15 on Exceptions (CS1081 lectured material), and followed the recent CS1092
More informationIntroduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of
Introduction to Software Engineering (2+1 SWS) Winter Term 2009 / 2010 Dr. Michael Eichberg Vertretungsprofessur Software Engineering Department of Computer Science Technische Universität Darmstadt Dr.
More informationApplet which displays a simulated trackball in the upper half of its window.
Example: Applet which displays a simulated trackball in the upper half of its window. By dragging the trackball using the mouse, you change its state, given by its x-y position relative to the window boundaries,
More informationM257 Past Paper Oct 2007 Attempted Solution
M257 Past Paper Oct 2007 Attempted Solution Part 1 Question 1 The compilation process translates the source code of a Java program into bytecode, which is an intermediate language. The Java interpreter
More informationOutline. Design Patterns. Observer Pattern. Definitions & Classifications
Outline Design Patterns Definitions & Classifications Observer Pattern Intent Motivation Structure Participants Collaborations Consequences Implementation 1 What is a Design Pattern describes a problem
More informationGeneral Certificate of Education Advanced Subsidiary Examination June 2010
General Certificate of Education Advanced Subsidiary Examination June 2010 Computing COMP1/PM/JA Unit 1 Problem Solving, Programming, Data Representation and Practical Exercise Preliminary Material A copy
More informationDarshan Institute of Engineering & Technology for Diploma Studies
Streams A stream is a sequence of data. In Java a stream is composed of bytes. In java, 3 streams are created for us automatically. 1. System.out : standard output stream 2. System.in : standard input
More informationJAVA Programming Language Homework VI: Threads & I/O
JAVA Programming Language Homework VI: Threads & I/O ID: Name: 1. When comparing java.io.bufferedwriter to java.io.filewriter, which capability exists as a method in only one of the two? A. Closing the
More informationOverview of Patterns: Introduction
: Introduction d.schmidt@vanderbilt.edu www.dre.vanderbilt.edu/~schmidt Professor of Computer Science Institute for Software Integrated Systems Vanderbilt University Nashville, Tennessee, USA Introduction
More informationException Handling CSCI 201 Principles of Software Development
Exception Handling CSCI 201 Principles of Software Development Jeffrey Miller, Ph.D. jeffrey.miller@usc.edu Outline Program USC CSCI 201L 2/19 Exception Handling An exception is an indication of a problem
More informationLesson 3: Accepting User Input and Using Different Methods for Output
Lesson 3: Accepting User Input and Using Different Methods for Output Introduction So far, you have had an overview of the basics in Java. This document will discuss how to put some power in your program
More informationShell Interface Assignment
Page 1 of 9 Shell Interface Assignment Creating a Shell Interface Using Java This assignment consists of modifying a Java program so that it serves as a shell interface that accepts user commands and then
More informationEvent-driven Programming, Separation of Concerns, the Observer pattern and the JavaFX Event Infrastructure
Java GUIs in JavaFX Event-driven Programming, Separation of Concerns, the Observer pattern and the JavaFX Event Infrastructure 1 GUIs process inputs and deliver outputs for a computing system Inputs Click
More informationLecture 5. Lecture
this GUI Example: SignalGUI Orphans D0010E Object- Oriented Programming and Design Model- View- Control Example: Counter Observer Recursive References Design PaOerns - Håkan Jonsson 1 1 About dynamic objects
More informationLab 1 : Java Sockets
Lab 1 : Java Sockets 1. Goals In this lab you will work with a low-level mechanism for distributed communication. You will discover that Java sockets do not provide: - location transparency - naming transparency
More informationIntroduction to concurrency and GUIs
Principles of Software Construction: Objects, Design, and Concurrency Part 2: Designing (Sub)systems Introduction to concurrency and GUIs Charlie Garrod Bogdan Vasilescu School of Computer Science 1 Administrivia
More informationMultiple Choice Questions: Identify the choice that best completes the statement or answers the question. (15 marks)
M257 MTA Spring2010 Multiple Choice Questions: Identify the choice that best completes the statement or answers the question. (15 marks) 1. If we need various objects that are similar in structure, but
More informationCSE 331 Software Design and Implementation. Lecture 17 Events, Listeners, Callbacks
CSE 331 Software Design and Implementation Lecture 17 Events, Listeners, Callbacks Zach Tatlock / Winter 2016 The limits of scaling What prevents us from building huge, intricate structures that work perfectly
More informationProject #1 Computer Science 2334 Fall 2008
Project #1 Computer Science 2334 Fall 2008 User Request: Create a Word Verification System. Milestones: 1. Use program arguments to specify a file name. 10 points 2. Use simple File I/O to read a file.
More informationSingle processor CPU. Memory I/O
Lec 17 Threads Single processor CPU Memory I/O Multi processes Eclipse PPT iclicker Multi processor CPU CPU Memory I/O Multi-core Core Core Core Core Processor Memory I/O Logical Cores Multi-threaded
More informationChain of Responsibility Pattern*
Design Patterns Chain of Responsibility Pattern* ebru@hacettepe.edu.tr ebruakcapinarsezer@gmail.com http://yunus.hacettepe.edu.tr/~ebru/ @ebru176 Kasım 2017 *modified from http://www.cse.wustl.edu Chain
More informationDesign Patterns. Definition of a Design Pattern
Design Patterns Barbara Russo Definition of a Design Pattern A Pattern describes a problem which occurs over and over again in our environment, and then describes the core of the solution to that problem,
More informationCSE 331 Software Design and Implementation. Lecture 16 Callbacks and Observers
CSE 331 Software Design and Implementation Lecture 16 Callbacks and Observers Leah Perlmutter / Summer 2018 Announcements Announcements Quiz 6 due Thursday 8/2 Homework 7 due Thursday 8/2 Callbacks The
More informationJava Exception Handling
Java Exception Handling Handling errors using Java s exception handling mechanism Approaches For Dealing With Error Conditions Use branches/decision making and return values Use Java s exception handling
More informationpackage p1; public class Derivation extends Protection { public Derivation() { System.out.println("Derived class constructor");
PROGRAM:1 WAP to implement the packages //package 1: package p1; public class Protection int n=1; public int n_pub=2; private int n_pri=3; protected int n_pro=4; public Protection () System.out.println("Base
More informationLecture 4. Lecture
Interfaces Classes Building blocks Methods Arrays Example: BitArray Packages D0010E Object- Oriented Programming and Design InformaGon hiding Graphics and interacgon Example: A blinking signal Access Modifiers
More informationWeek 13 Lab - Exploring Connections & Remote Execution
Week 13 Lab - Exploring Connections & Remote Execution COSC244 & TELE202 1 Assessment This lab is worth 0.5%. The marks are awarded for completing the programming exercise and answering the questions.
More informationInternet Technology 2/7/2013
Sample Client-Server Program Internet Technology 02r. Programming with Sockets Paul Krzyzanowski Rutgers University Spring 2013 To illustrate programming with TCP/IP sockets, we ll write a small client-server
More informationANN exercise session
ANN exercise session In this exercise session, you will read an external file with Iris flowers and create an internal database in Java as it was done in previous exercise session. A new file contains
More informationFull file at Chapter 2 - Inheritance and Exception Handling
Chapter 2 - Inheritance and Exception Handling TRUE/FALSE 1. The superclass inherits all its properties from the subclass. ANS: F PTS: 1 REF: 76 2. Private members of a superclass can be accessed by a
More information2018/2/5 话费券企业客户接入文档 语雀
1 2 2 1 2 1 1 138999999999 2 1 2 https:lark.alipay.com/kaidi.hwf/hsz6gg/ppesyh#2.4-%e4%bc%81%e4%b8%9a%e5%ae%a2%e6%88%b7%e6%8e%a5%e6%94%b6%e5%85%85%e5 1/8 2 1 3 static IAcsClient client = null; public static
More informationFile IO. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 20
File IO Computer Science and Engineering College of Engineering The Ohio State University Lecture 20 I/O Package Overview Package java.io Core concept: streams Ordered sequences of data that have a source
More informationi219 Software Design Methodology 8. Dynamic modeling 1 Kazuhiro Ogata (JAIST) Outline of lecture
i219 Software Design Methodology 8. Dynamic modeling 1 Kazuhiro Ogata (JAIST) Outline of lecture 2 Use case Use case diagram State (machine) diagram Sequence diagram Class diagram of vending machine Vending
More informationAutonomous Configuration UI
Autonomous Configuration UI The Autonomous Configuration tool is an Android app developed by Team 4106 to configure the robot s autonomous settings on the fly. Using the apps removes the need to recompile
More informationDesign Patterns (Creational Patterns, Structural Patterns)
Course 8 27 April Previous courses Design Patterns (Creational Patterns, Structural Patterns) Behavioral Patterns Chain of Responsibility Command Interpreter Iterator Mediator Memento Observer State Strategy
More informationDesign patterns for graphical user interface applications
Design patterns for graphical user interface applications Prof.Asoc. Alda Kika Department of Informatics Faculty of Natural Sciences University of Tirana Outline Pattern Concept Design pattern in computer
More informationJava Exception Handling
Java Exception Handling Handling errors using Java s exception handling mechanism Approaches For Dealing With Error Conditions Use branches/decision making and return values Use Java s exception handling
More informationCOMP 213. Advanced Object-oriented Programming. Lecture 19. Input/Output
COMP 213 Advanced Object-oriented Programming Lecture 19 Input/Output Input and Output A program that read no input and produced no output would be a very uninteresting and useless thing. Forms of input/output
More informationBBM 102 Introduction to Programming II Spring Exceptions
BBM 102 Introduction to Programming II Spring 2018 Exceptions 1 Today What is an exception? What is exception handling? Keywords of exception handling try catch finally Throwing exceptions throw Custom
More informationDesign Patterns Design patterns advantages:
Design Patterns Designing object-oriented software is hard, and designing reusable object oriented software is even harder. You must find pertinent objects factor them into classes at the right granularity
More informationMultimedia Programming
Multimedia Programming Medialogy, 8 th Semester, Aalborg University Wednesday 6 June 2012, 09.00 12.00 Instructions and notes You have 3 hours to complete this examination. Neither written material nor
More informationProject #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently.
Project #1 rev 2 Computer Science 2334 Fall 2013 This project is individual work. Each student must complete this assignment independently. User Request: Create a simple magazine data system. Milestones:
More informationJava Exception Handling
Java Exception Handling Handling errors using Java s exception handling mechanism Approaches For Dealing With Error Conditions Use conditional statements and return values Use Java s exception handling
More informationCS11 Java. Fall Lecture 4
CS11 Java Fall 2014-2015 Lecture 4 Java File Objects! Java represents files with java.io.file class " Can represent either absolute or relative paths! Absolute paths start at the root directory of the
More informationCOMP 213. Advanced Object-oriented Programming. Lecture 20. Network Programming
COMP 213 Advanced Object-oriented Programming Lecture 20 Network Programming Network Programming A network consists of several computers connected so that data can be sent from one to another. Network
More informationG51PGP Programming Paradigms. Lecture OO-4 Aggregation
G51PGP Programming Paradigms Lecture OO-4 Aggregation 1 The story so far We saw that C code can be converted into Java code Note real object oriented code though Hopefully shows you how much you already
More informationpre-emptive non pre-emptive
start() run() class SumThread extends Thread { int end; int sum; SumThread( int end ) { this.end = end; } public void run() { // sum integers 1, 2,..., end // and set the sum } } SumThread t = new SumThread(
More informationJava Exception Handling
Java Exception Handling Handling errors using Java s exception handling mechanism Approaches For Dealing With Error Conditions Use branches/decision making and return values Use Java s exception handling
More informationClasses and Objects 3/28/2017. How can multiple methods within a Java class read and write the same variable?
Peer Instruction 8 Classes and Objects How can multiple methods within a Java class read and write the same variable? A. Allow one method to reference a local variable of the other B. Declare a variable
More informationIntroduction to Computers and Java
Introduction to Computers and Java Chapter 1 Objectives Overview of computer hardware and software, programs and compilers the Java programming language Example program Hardware and Software Computer systems
More informationObject-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 6: Using Design Patterns
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 6: Using Design Patterns 6.1 Introduction to Patterns The recurring aspects of designs are called design patterns.
More informationJava Exception Handling
Java Exception Handling Handling errors using Java s exception handling mechanism Approaches For Dealing With Error Conditions Use branches/decision making and return values Use Java s exception handling
More informationOOP Lab Chat Application using OCSF Framework Page 1 Purpose Files
OOP Lab Chat Application using OCSF Framework Page 1 Purpose Files Overview Learn to apply a framework in developing an application Download the ocsf-231.jar to your project directory (or anywhere). Project
More informationEJB - INTERCEPTORS. Interceptor methods can be applied or bound at three levels
http://www.tutorialspoint.com/ejb/ejb_interceptors.htm EJB - INTERCEPTORS Copyright tutorialspoint.com EJB 3.0 provides specification to intercept business methods calls using methods annotated with @AroundInvoke
More informationpublic class Q1 { public int x; public static void main(string[] args) { Q1 a = new Q1(17); Q1 b = new Q1(39); public Q1(int x) { this.
CS 201, Fall 2013 Oct 2nd Exam 1 Name: Question 1. [5 points] What output is printed by the following program (which begins on the left and continues on the right)? public class Q1 { public int x; public
More informationObject-Oriented Software Engineering (Re-exam for Object-Oriented Analysis, Design and Programming)
Object-Oriented Software Engineering (Re-exam for Object-Oriented Analysis, Design and Programming) Medialogy, 4 th Semester, Aalborg Monday 11 June 2012, 09.00 12.00 Instructions You have 3 hours to complete
More informationNetworking Basics. network communication.
JAVA NETWORKING API Networking Basics When you write Java programs that communicate over the network, you are programming at the application layer. Typically, you don't need to concern yourself with the
More informationByte and Character Streams. Reading and Writing Console input and output
Byte and Character Streams Reading and Writing Console input and output 1 I/O basics The io package supports Java s basic I/O (input/output) Java does provide strong, flexible support for I/O as it relates
More informationWINDOWS SOCKET PROGRAMMING
WINDOWS SOCKET PROGRAMMING Headers and libraries All the declarations are in one header, winsock.h Your socket programs must link to the Winsock library (usually called wsock32.lib or winsock32.lib) Initialization
More informationChapter 13: Handling Events
Chapter 13: Handling Events Event Handling Event Occurs when something interesting happens to an object Used to notify a client program when something happens to a class object the program is using Event
More informationITNP090 - Object Oriented Software Design
In this practical, we will create a model for a part of the reservation system for a library. There are Book objects and an application object that creates and manipulates them. Two view objects in the
More informationJava Programming Language Advance Feature
Java Programming Language Advance Feature Peter.Cheng founder_chen@yahoo.com.cn http://www.huihoo.com 2004-04 Huihoo - Enterprise Open Source http://www.huihoo.com 1 Course Goal The main goal of this course
More information1. Download the JDK 6, from
1. Install the JDK 1. Download the JDK 6, from http://java.sun.com/javase/downloads/widget/jdk6.jsp. 2. Once the file is completed downloaded, execute it and accept the license agreement. 3. Select the
More information02. OBSERVER PATTERN. Keep your Objects in the know. Don t miss out when something interesting happens
BIM492 DESIGN PATTERNS 02. OBSERVER PATTERN Keep your Objects in the know Don t miss out when something interesting happens Congrats! Your team has just won the contract to build Weather-O-Rama, Inc. s
More information3. Introduction to threads
In this chapter What is multithreaded programming? Constructing concurrently running Threads Modern computers have the ability to perform multiple tasks seemingly, i.e. running multiple programs or processes,
More informationModel-View Controller IAT351
Model-View Controller IAT351 Week 17 Lecture 1 15.10.2012 Lyn Bartram lyn@sfu.ca Administrivia CHANGE to assignments and grading 4 assignments This one (Assignment 3) is worth 20% Assignment 4 is worth
More informationExceptions and Libraries
Exceptions and Libraries RS 9.3, 6.4 Some slides created by Marty Stepp http://www.cs.washington.edu/143/ Edited by Sarah Heckman 1 Exceptions exception: An object representing an error or unusual condition.
More informationCSE 331. Model/View Separation and Observer Pattern
CSE 331 Model/View Separation and Observer Pattern slides created by Marty Stepp based on materials by M. Ernst, S. Reges, D. Notkin, R. Mercer, Wikipedia http://www.cs.washington.edu/331/ 1 Model and
More informationLab 4. D0010E Object-Oriented Programming and Design. Today s lecture. GUI programming in
Lab 4 D0010E Object-Oriented Programming and Design Lecture 9 Lab 4: You will implement a game that can be played over the Internet. The networking part has already been written. Among other things, the
More informationTO DO: Create a new class which adds statistics to the dice. NOTE: Don t forget to run regression tests
TO DO: Create a new class which adds statistics to the dice This class should add functionality to store the roll frequencies. You should implement a validation test (as well as running unit tests) as
More informationAlgorithms and Problem Solving
Algorithms and Problem Solving Introduction What is an Algorithm? Algorithm Properties Example Exercises Unit 16 1 What is an Algorithm? What is an Algorithm? An algorithm is a precisely defined and ordered
More informationSimple Data Source Crawler Plugin to Set the Document Title
Simple Data Source Crawler Plugin to Set the Document Title IBM Content Analytics 1 Contents Introduction... 4 Basic FS Crawler behavior.... 8 Using the Customizer Filter to Modify the title Field... 13
More informationGraphical User Interfaces (GUIs)
CMSC 132: Object-Oriented Programming II Graphical User Interfaces (GUIs) Department of Computer Science University of Maryland, College Park Model-View-Controller (MVC) Model for GUI programming (Xerox
More informationSelected Sections of Applied Informatics LABORATORY 0
SSAI 2018Z: Class 1. Basics of Java programming. Page 1 of 6 Selected Sections of Applied Informatics LABORATORY 0 INTRODUCTION TO JAVA PROGRAMMING. BASIC LANGUAGE INSTRUCTIONS. CONSOLE APPLICATION. CONDITION,
More informationThe Limit of DTrace. A Failed Attempt at Deadlock Detection
GEORGE MASON UNIVERSITY The Limit of DTrace A Failed Attempt at Deadlock Detection Khemara Chuon 2008-03-27 Solaris operating system is missing crucial probe implementations required for deadlock detection
More informationObject-Oriented Programming Design. Topic : Streams and Files
Electrical and Computer Engineering Object-Oriented Topic : Streams and Files Maj Joel Young Joel Young@afit.edu. 18-Sep-03 Maj Joel Young Java Input/Output Java implements input/output in terms of streams
More informationAdvanced Programming Methods. Lecture 6 - Concurrency in Java (1)
Advanced Programming Methods Lecture 6 - Concurrency in Java (1) Overview Introduction Java threads Java.util.concurrent References NOTE: The slides are based on the following free tutorials. You may want
More informationCS 351 Design of Large Programs Sockets Example
CS 351 Design of Large Programs Sockets Example Brooke Chenoweth University of New Mexico Spring 2019 Socket Socket(String host, int port) InputStream getinputstream() OutputStream getoutputstream() void
More informationpublic static void main(string[] args) throws IOException { sock = new Socket(args[0], Integer.parseInt(args[1]));
Echo Client&Server Application EchoClient import java.net.*; import java.io.*; class EchoClient public static void main(string[] args) throws IOException if (args.length < 2) number>"); System.err.println("Usage:
More informationSocket Programming(TCP & UDP) Sanjay Chakraborty
Socket Programming(TCP & UDP) Sanjay Chakraborty Computer network programming involves writing computer programs that enable processes to communicate with each other across a computer network. The endpoint
More informationCSCD 330 Network Programming
CSCD 330 Network Programming Lecture 8 Client-Server Programming Threads Winter 2015 Reading: Chapter 2, Relevant Links Some Material in these slides from J.F Kurose and K.W. Ross All material copyright
More informationCPSC 319. Week 2 Java Basics. Xiaoyang Liu & Sorting Algorithms
CPSC 319 Week 2 Java Basics Xiaoyang Liu xiaoyali@ucalgary.ca & Sorting Algorithms Java Basics Variable Declarations Type Size Range boolean 1 bit true, false char 16 bits Unicode characters byte 8 bits
More information