1 / 24

Frameworks

Frameworks. Framework. Set of cooperating classes/interfaces Structure essential mechanisms of a problem domain Programmer can extend framework classes, creating new functionality Example: Swing package is framework for problem domain of GUI programming. Frameworks Vs. Patterns.

Télécharger la présentation

Frameworks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Frameworks

  2. Framework • Set of cooperating classes/interfaces • Structure essential mechanisms of a problem domain • Programmer can extend framework classes, creating new functionality • Example: Swing package is framework for problem domain of GUI programming

  3. Frameworks Vs. Patterns • Pattern: general design rule for solving a problem • Framework: set of classes providing functionality in a particular domain; often uses multiple patterns

  4. Application Frameworks • Implement services common to an type of application • Supply sets of classes for programmer to augment to build applications (often by subclassing framework classes)

  5. Inversion of Control • Framework classes, not application-specific classes, control flow of execution • Framework determines which methods to call and when

  6. Framework example: Applets • Applet: Java program that can be included in a web document to add interactions and dynamism • Java source is referenced by an HTML document • Package java.applet is a simple application framework • consists of superclasses to make applets • programmer adds classes, overrides methods to create actual applets

  7. Applet characteristics • No main() method • Programmer overrides some or all of the following methods: • init() • start() • stop() • destroy() • paint()

  8. How applets work • Since an applet has no main() method, initialization of object takes place in method init(), which takes the place of both main() and the constructor • Method init() is typically used to perform initializations of short duration; longer running initializations, e.g. loading a file across a network, should be done in separate threads

  9. Methods of Applet class • Method init() is empty, and must be overridden by the child class • Method start() is called to set up the applet to run • may create several threads • called when applet is loaded & initialized the first time, resized, or when user returns to page from elsewhere • paint() automatically called after start()

  10. Methods of Applet class • Method stop() is called to stop the applet - usually means halting threads started by start() when, for example, the user leaves the page • Method destroy() performs final cleanup before the applet is unloaded

  11. Methods of Applet class • Control sequence is: • init() • start() • paint() • then stop() or destroy(), as appropriate • Applet can transition many times between start() and stop() states • May define all, some, or none of these methods when extending an Applet; should only define those necessary for specific applet

  12. HTML for applet inclusion <APPLET codebase = “URL for code location” code = class name width = # height = #> <param name = somename value = value> Alternate text to display in lieu of applet </APPLET>

  13. Applet HTML dissected • Codebase: URL web address where code can be found (can be just a file name) • code: name of class (name of file in an application) • height and width tell browser how much space to allocate for applet • param tags: provide parameters, analogous to command-line parameters - values can be accessed within applet via call to getParameter()

  14. More fun facts about applets • Applet class is actually subclass of Panel - so inherits graphical component attributes • Events, in particular, are handled same way as other graphical components, and window repainting same as application • Default layout for applet is flow layout, not border layout

  15. Other methods provided by Applet class • getImage(URL): takes URL and retrieves image from that location (must be gif or jpg) • getAudioClip(URL): returns audio object from given location; can subsequently be asked to play - shorthand version play(URL) combines get and play methods

  16. Other methods provided by Applet class • getCodeBase() returns URL for codebase specified for applet • getParameter() takes String argument and returns associated String value if <param> tag was provided - returns null if none was provided

  17. Java class URL • URL class is provided by java.net.* • URL object supplies methods to parse URL, open network connections, and retrieve information • Example: URL newURL = new URL(String s); creates URL object newURL with specification s

  18. Java class URL • Can create URLs using Java’s URL class - address is formed from a String, or previous URL plus a String - latter from could be used, for example, to retrieve several files from the same directory • URL class provides method openStream, which returns an InputStream value - once an URL object is created, can use this method to read from the URL using normal InputStream methods

  19. Using applet to open a new page • Can use showDocument() method of class appletContext to instruct browser to load a new web page: appletContext.showDocument(URL) • URL refers to a Java URL object (not a string) • browser will display the page corresponding to the URL

  20. Applets vs. Applications • An applet has no main method, as it is structured to run inside another application • The Java Virtual Machine runs applications, but not applets • Can use appletviewer program to test and debug applet code • Most applets are event-driven (but don’t have to be)

  21. Applets vs. Applications • Applets do I/O through the browser GUI, and displays error messages (only) to stdout • An applet is a subclass of Applet from java.applet • Applets have security restrictions: can’t read or write files, run local executable programs, communicate with hosts other than the server, or learn many facts about the client computer

  22. Creating Applet/Application Hybrids • Applet class pays no attention to static methods contained in class definition • Key idea is that Applet is a Panel • can nest inner class within Applet to create Frame necessary for application • only component created for this Frame will be Panel constructed by Applet • Method main(), which is ignored when executing as applet, creates instance of applet when run as an application • Applet then creates instance of Frame, placing itself in center • Constructor for Frame executes requisite init() and start()

  23. Applets as Framework • Programmer for individual applet uses inheritance to extend the applet framework class to specific program • Applet class deals with behavior common to all applets; programmer only fills in custom behavior for specific application

  24. Applets as Framework • Inversion of control means applet programmer not concerned with overall control flow - fills in handlers for initialization, starting, stopping and painting, but has no control over when these methods are called

More Related