Abstract Factory Pattern. Human Computer Interaction Research University of Nevada, Reno



Similar documents
Division of Information Technology Lehman College CUNY

POS Systems & Software

ViewPoint Mobile Quick Start Guide

System requirements for Qlik Sense. Qlik Sense 3.0 Copyright QlikTech International AB. All rights reserved.

Buying a New Tablet or Smartphone? My 2c Worth by Kaye Walford of Creative Juices Computing

FixIT The Quick Help Call Out 1st Hour Call Out Second Hour Remote Service per Hour Data Back Up 45.00

Mobile Software Development Services

Specifications. Product Description 18.5" Fanless, Intel ATOM D GHz Processor, Multi Function Panel PC

Abstract Classes. Suppose we want write a program that manipulates various types of bank accounts. An Account typically has following features;

Data Plans for GPS 6500 Units with a Rover Bundle

DOC# IMBU-PB-REMOTE-MONITORING-01-EN IMBU. Remote monitoring of industrial equipment

2) Upon Alarm condition: facilitate the compilation and printing of alarm information to local & networked printers.

GIS Receiver. Zenith02 Zenith 05-S Zenith 05-D

A Generic Process Calculus Approach to Relaxed-Memory Consistency

(305) (USA) Bros Global

A Look Inside Smartphone and Tablets

Mobile Applications, Function Points and Cost Estimating. Tammy Preuss International Cost Estimation & Analysis Association Conference June 11, 2013

Laptop vs. Tablet. What Should I Buy? Presented by: Matt Harmon & Rob Germeroth

Mobile and Sensor Systems

Core Expertise. Certifications. Europe. Korea. CPU Module Optimization Technology (Telemetric embedded Design Technology) CPU Board

ADMINISTRATOR GUIDE FOR USA MOBILITY AMC SELECT

Date: August 4, Hidalgo County - HIDTA Task Force. Response to Request for Quotation Includes:

For the latest information, check the product home page ( en/products/rack2_smart).

Join & Leave Meetings

HPC-Nutzer Informationsaustausch. The Workload Management System LSF

Contents Error! Bookmark not defined.

ShoreTel Mobility Version 4.6 Platform Support Guide. Rev. 1

AT&T Connect System Requirements for End Users v9.5. March 2013

Abila MIP Mobile. System Requirements

Operating Manual Version: 1.0. U.S. Patent Pending

4G Ready Mobiles - Apple Devices

Mobility at Northwestern

Case Study: Smart Phone Deleted Data Recovery

MODELOS APPLE. 16 GB / CPU Dual Core 1 GHz / Wi-Fi / Internet 3G / 64 GB GB / CPU Dual Core 1 GHz / Wi-Fi / Internet

FIGURE 12-1 Original Advanced Mobile Phone Service (AMPS) frequency spectrum

Table of contents. Section Title Page

INTEGRATED MONITORING RECEIVER WITH MICRO SERVER STAM-IRS. 1. Features. 2. Description

Topic 1) How to get an inexpensive cell phone that works well in Oakmont. Drawing for door prize (cell phone)

KT40. Quick Guide Android 4.4.2

Objective C and iphone App

Developing Vietnam s Infrastructure

SERVER SETUP GUIDE CREATED BY JOHN SHEATHER 25 AUGUST SambaPOS Server Setup Guide V2.0 1 of 25

Non Volatile Memory Invades the Memory Bus: Performance and Versatility is the Result

New Mexico Broadband Program. Basic Computer Skills. Module 1 Types of Personal Computers Computer Hardware and Software

Central Processing Unit

TSP s RIM Package. TSP s Innovate. Server Monitoring Services Top 10 Monitoring Parameters. Firewall Monitoring Services Monitoring Parameters

More information >>> HERE <<<

Here are my slides from lecture, along with my notes about each slide.

Discount Apple Computers - Budget Solutions

! encor e networks TM

Introduction to GPU Computing

GLOBALMEET FOR iphone. GLOBALMEET FOR iphone USER GUIDE

NetLeverage UK ThinPoint Solution Overview Version 2 Copyright 2012 NetLeverage UK

MA-WA1920: Enterprise iphone and ipad Programming

RESOLUTION PRODUCTS 2015 HELIX CATALOG

The Telephone. Wonder what Bell and Watson would think now?

Resource Aware Scheduler for Storm. Software Design Document. Date: 09/18/2015

Additional details >>> HERE <<<

IRT84. Irt84. Datasheet. EMV L1 compliant terminal with ISO14443A/B. 1

CReST Developers Guide

ORGANIZER QUICK REFERENCE GUIDE. Install GoToMeeting. Schedule a Meeting. Start a Scheduled Meeting. Start an Instant Meeting.

Sophos Mobile Control User guide for Apple ios. Product version: 2 Document date: December 2011

Monitoring Remote Chemical Tanks

Protect Your Children. Prove Sobriety.

Collections.sort(population); // Método de ordenamiento

FREQUENTLY ASKED QUESTIONS BY CUSTOMER S WHO ORDER CLUSTER BOX UNITS

Pcounter Mobile Guide

AddPac Technology. 2013, Sales and Marketing.

GSM Diallers - How to Use and Install the Rebel Simii Dialler

CQCON 2013: five Sling features you should know

Deployment Guide Microsoft System Center Operations Manager (SCOM)

Computing Global Tablet and Application Processor Development Trends, 2012 and Beyond

Introduction. Observation Patterns. Accounting Patterns. How to use Patterns

Quick Installation Guide DIR-620. Multifunction Wireless Router Supporting GSM, CDMA, WiMAX with Built-in 4-port Switch

This Talk is NOT. an endorsement a detailed guide about a particular phone. about carriers. except when it is. ok, fine, it s mostly about carriers.

CS 111 Classes I 1. Software Organization View to this point:

Advanced Graphics and Animations for ios Apps

Talking the Talk - A Guide to Mobile Advertising Terminology

High-performance VoIP Traffic Optimizer Client Solution

Instant Graphical User Interface Solutions Why you need a new User Interface

SNAPPIN.IO. FWR is a Hardware & Software Factory, which designs and develops digital platforms.

Cohort: BCA/07B/PT - BCA/06/PT - BCNS/06/FT - BCNS/05/FT - BIS/06/FT - BIS/05/FT - BSE/05/FT - BSE/04/PT-BSE/06/FT

SOFTDENT Practice Management Software v14.0 System Requirements. Server. Workstation (without digital imaging)

574 Newark Avenue, Suite 210, Jersey City, NJ Contact Us:

Cloud Panel Service Evaluation Scenarios

ODROID Multithreading in Android

June 2013 v. 0.2

INTRODUCTION OF IPAD USE AT UT. Introduction of ipad use at the University of Twente Content Introduction... 2

H0/H2/H4 -ECOM100 DHCP & HTML Configuration. H0/H2/H4--ECOM100 DHCP Disabling DHCP and Assigning a Static IP Address Using HTML Configuration

Touch Print All-in-One Printer

A-317. Mobile Data Terminal. Android Platform Datasheet

HP Z Workstations graphics card options

1. Technical requirements 2. Installing Microsoft SQL Server Configuring the server settings

Full version is >>> HERE <<<

PD590-KT. Guide Android 4.4.2

Implementation of a Collaborative Engineering Data Management System. Tony Metz Fermilab 04 May 2015

2020 Design Update Release Notes November 10, 2015

Compact All-in-One Solution with Wireless Network Connectivity

for Android Desktop and Conduit for Mac Quick Start Guide

CPU Dual processor, quad-core 2.0 gigahertz (GHz)+ 4-way processor, dual-core 2.0 GHz+

Transcription:

Abstract Factory Pattern

Pattern Categories!Behavioral Patterns» observer» decorator» strategy!creational Patterns» factory method» abstract factory

Problem Too many dependencies to concrete classes makes your software difficult to maintain and modify

example client B1 A1 B2 A2 B3 A3 client depends on six classes

Dependency Inversion principle Depend upon Abstractions, do not depend upon concrete classes

Factory Method client client depends on one class abstraction B1 A1 B2 A2 B3 A3

Guidelines!No variable should have a reference to a concrete class!no class should derive from a concrete class!no method should override an implemented method of any of its base classes.

Example ipad iphone

Instead of creating this Factory A4 8GB A5 16GB Factory A4 8GB A5X 32GB

Look at ingredients AT&T Verizon iphone CPU A4 A4 protocol GSM CDMA memory 8 16 ipad CPU A5 A5X protocol GSM CDMA memory 16 32

Create Abstractions CPU protocol memory A4 A5X A5 GSM CDMA 8 16 32 device ipad iphone

Create Ingredient Factory CPU protocol memory A4 A5X A5 GSM CDMA 8 16 32 Factory ipad()

Abstract Factory Pattern The Abstract Factory Pattern provides an interface for creating families of related or dependent objects without specifying their concrete classes.

Abstract Factory each factory knows how to make the right ingredients

Exercise II B.I.G

NV Slot store public interface SlotComponentFactory { public Cabinet createcabinet(); public Display createdisplay(); // public GPU(); // public CPU(); public interface Cabinet { public String tostring(); public class largecabinet implements Cabinet { public String tostring() { return "A large cabinet";

NV Slot Component Factory public class NVSlotComponentFactory implements SlotComponentFactory public Cabinet createcabinet() { return new largecabinet(); public Display createdisplay() { return new LCD();

NJ Slot Factory public class NJSlotFactory extends SlotFactory { protected Slot makeslot(string item) { Slot slot=null; SlotComponentFactory componentfactory = new NJSlotComponentFactory(); if (item.equals("bonus")) { slot=new BonusSlot(componentFactory); slot.setname("new Jersey Style Bonus Slot"); else if (item.equals("progressive")) { slot=new ProgressiveSlot(componentFactory); slot.setname("new Jersey Style Progressive Slot"); return slot;

Bonus Slot public class BonusSlot extends Slot { SlotComponentFactory componentfactory; public BonusSlot(SlotComponentFactory componentfactory) { this.componentfactory= componentfactory; void build() { System.out.println("Building " + name); cabinet = componentfactory.createcabinet(); display = componentfactory.createdisplay();