actionscript developers guide to puremvc

262 755 0
actionscript developers guide to puremvc

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

www.it-ebooks.info www.it-ebooks.info ActionScript Developer's Guide to PureMVC Cliff Hall Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo www.it-ebooks.info ActionScript Developer's Guide to PureMVC by Cliff Hall Copyright © 2012 Futurescale, Inc All rights reserved. Printed in the United States of America. Published by O’Reilly Media, Inc., 1005 Gravenstein Highway North, Sebastopol, CA 95472. O’Reilly books may be purchased for educational, business, or sales promotional use. Online editions are also available for most titles (http://my.safaribooksonline.com). For more information, contact our corporate/institutional sales department: (800) 998-9938 or corporate@oreilly.com. Editors: Mike Hendrickson and Mary Treseler Production Editor: Melanie Yarbrough Cover Designer: Karen Montgomery Interior Designer: David Futato Illustrator: Robert Romano Revision History for the First Edition: 2011-12-19 First release See http://oreilly.com/catalog/errata.csp?isbn=9781449314569 for release details. Nutshell Handbook, the Nutshell Handbook logo, and the O’Reilly logo are registered trademarks of O’Reilly Media, Inc. ActionScript Developer’s Guide to PureMVC, the cover image of a thick-billed coot, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc. was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in the preparation of this book, the publisher and authors assume no responsibility for errors or omissions, or for damages resulting from the use of the information con- tained herein. ISBN: 978-1-449-31456-9 [LSI] 1323727631 www.it-ebooks.info Adobe Developer Library, a copublishing partnership between O’Reilly Media Inc., and Adobe Systems, Inc., is the authoritative resource for developers using Adobe technologies. These comprehensive resources offer learning solutions to help devel- opers create cutting-edge interactive web applications that can reach virtually any- one on any platform. With top-quality books and innovative online resources covering the latest tools for rich-Internet application development, the Adobe Developer Library delivers expert training straight from the source. Topics include ActionScript, Adobe Flex®, Adobe Flash®, and Adobe Acrobat®. Get the latest news about books, online resources, and more at http://adobedeveloper library.com. Untitled-1 1 3/3/09 5:37:20 PM www.it-ebooks.info www.it-ebooks.info This book is dedicated to my wife Helen, whose patience, love, and support enabled every keystroke. www.it-ebooks.info www.it-ebooks.info Table of Contents Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Classic MVC Architecture 1 The PureMVC AS3 Reference Implementation 3 The Role of PureMVC in Your Application 4 Pay No Attention to the Man Behind the Curtain 5 Meet the Workhorses 6 Actors at the Boundaries 6 Use a Proxy as a Data Source for the Application 6 Use a Mediator as a Secretary for a View Component 9 Actors Between the Boundaries 12 Let SimpleCommands Do Most of the Thinking 12 Use a MacroCommand to Execute Several SimpleCommands 13 The Rest of the Gang 14 Notifications 14 The Core Actors 15 The Facade 15 Packaging Your Classes 16 Ordinary Classes 16 Framework Classes 16 Typical Package Structure 16 Standard and MultiCore Versions 17 Writing Portable Code 19 2. Building an Application with PureMVC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Choosing the Platform 21 It Was a Dark and Stormy Night 22 StoryArchitect, A Tool for Writing Fiction 24 Statement of Purpose 24 Determining Scope 25 vii www.it-ebooks.info Describing the Domain 26 Imagining the User Interface 26 Persistence Strategy 27 Erecting the Startup Scaffolding 28 Prepare the Project and Initial Package Structure 29 Create an Application Constants Class 29 Create a Startup Command 30 Create the Application Facade 31 Initialize the Application Facade and call startup() 32 Building from the Outside In 33 Step 1: Value Objects 34 Step 2: View Components 34 Step 3: Proxys 35 Step 4: Mediators 36 Step 5: Commands 37 3. Modelling the Domain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Designing the Schema 39 Reviewing the Entities 40 Creating the Schema 41 Creating the Value Objects 51 A Simple Case 51 A Slightly More Complex Case 53 An Advanced Case 58 Creating the Enums 66 Enumerating the Enums 67 The Base Class 67 An Enum Subclass 68 Testing the Entities 69 A Flex Unit Test Class 69 4. Implementing the User Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 A Tale of Two Views 74 The Application 76 The Chooser 79 The Story Chooser 80 The Editor 82 The Editor Controls 84 The Details Component 87 The Item Info Component 89 The Notes Component 91 The Timeline Component 94 The Story Tile 96 viii | Table of Contents www.it-ebooks.info [...]... com.mycompany.myapp.view.event.MyAppEvent; import org .puremvc. as3.interfaces.INotification; import org .puremvc. as3.patterns.mediator.Mediator; public class EmailConfigMediator extends Mediator { public static const NAME:String = "EmailConfigMediator"; private var emailConfigProxy:EmailConfigProxy; // Pass Mediator constructor this mediator's name and component public function EmailConfigMediator( viewComponent:EmailConfig... can turn your code into spaghetti as every class couples itself to the Singleton rather than get what it needs through a more appropriate actor Due to the Facade, there is never a reason to access the other Singletons directly, allowing you to replace any or all of them with your own implementation As for the Facade itself, all of the actors who need it already have a reference to it by design Only... altogether You may choose to impose a strict Three-tier Design limitation on your code if you wish, but it is not required We will continue to use the word tiers when referring to the Model, View, and Controller regions of the application (as opposed to the actual classes, which will always appear as Model, View, and Controller) The PureMVC AS3 Reference Implementation A core goal of PureMVC is to. .. future where developers throw in feature after feature Refactoring and deprecation of old features in favor of new ones improve the project but keep dependent developers on a constant treadmill trying to keep up, in turn refactoring their own code in order to take advantage of the latest and greatest goodies In contrast (and partly in response), the goal for the AS3 implementation of PureMVC was to be feature-frozen,... evaluate, port, or modify PureMVC at a very deep level That same documentation has also had to serve developers who just want to use the framework to get on with their jobs The result has been that the latter (and much larger) crowd tends to see the framework as overly complicated at first, when in fact, it is incredibly simple to use Much effort has been invested in its design to make proper MVC separation... because there are just too many ways to do it; it is not PureMVC s intent to represent data, but rather to retrieve, persist, and expose it to the user for viewing and manipulation Retrieving and persisting the data—in whatever form it may take—is the primary role of the Proxy Proxy subclasses are long-lived actors that act as data sources within the application Whether they handle access to the filesystem,... called the Encrypted Local Store (ELS) It allows you to store key / value pairs in an encrypted database on the local disk In this example, we will see how to use a Proxy subclass to read and write a Value Object to the ELS For the purposes of demonstration, we will store sensitive information about the location of the user’s mail server and her credentials Our approach will be to have the EmailConfigProxy... be custom and some out-of-box Plugging your View Components into the rest of the application is the role of the Mediator Mediator subclasses are long-lived actors whose primary function is to isolate the ap- plication’s knowledge of a given component in the display list to a single framework subclass It will provide that component with the data it needs, pass data from the View Component back into the... where a reference to the EmailConfigVO can be accessed as needed by the EmailConfigMediator We will also exercise the alternative for the View Component to pass the data to the EmailConfigMe diator in a property of a custom Event The properties of that Value Object will be used by the View Component to populate its form When the user has entered or edited the data, he will be able to test the configuration... the test passes, he will then be able to save the configuration We will leave it to the View Component to encapsulate all of the necessary supporting behavior such as not enabling the “Save” button until a test has been done, and not enabling the “Test” button until all the information has been entered, and so on All that we need to know to build the EmailConfigMediator is the relevant properties, methods, . www.it-ebooks.info www.it-ebooks.info ActionScript Developer's Guide to PureMVC Cliff Hall Beijing • Cambridge • Farnham • Köln • Sebastopol • Tokyo www.it-ebooks.info ActionScript Developer's Guide to PureMVC by. Other Mediators 147 Mediator Multiplicity 148 Determining Granularity of Mediation 148 Building the Mediators 149 The Application Mediator 149 The Chooser Mediator 151 The Editor Mediator 154 7 corporate@oreilly.com. Editors: Mike Hendrickson and Mary Treseler Production Editor: Melanie Yarbrough Cover Designer: Karen Montgomery Interior Designer: David Futato Illustrator: Robert Romano Revision History

Ngày đăng: 24/04/2014, 14:32

Mục lục

    Code at the Speed of Thought

    The Purpose of This Book

    Who Should Read This Book

    Conventions Used in This Book

    How to Contact Us

    The PureMVC AS3 Reference Implementation

    The Role of PureMVC in Your Application

    Pay No Attention to the Man Behind the Curtain

    Actors at the Boundaries

    Use a Proxy as a Data Source for the Application

Tài liệu cùng người dùng

Tài liệu liên quan