DZone
Java Zone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
  • Refcardz
  • Trend Reports
  • Webinars
  • Zones
  • |
    • Agile
    • AI
    • Big Data
    • Cloud
    • Database
    • DevOps
    • Integration
    • IoT
    • Java
    • Microservices
    • Open Source
    • Performance
    • Security
    • Web Dev
DZone > Java Zone > Design Patterns Uncovered: Tutorial Series Overview

Design Patterns Uncovered: Tutorial Series Overview

Learn the Gang of Four Design Patterns with easy Java source code examples in James Sugrue's design patterns tutorial series, Design Patterns Uncovered

James Sugrue user avatar by
James Sugrue
CORE ·
Jun. 23, 10 · Java Zone · Tutorial
Like (17)
Save
Tweet
41.82K Views

Join the DZone community and get the full member experience.

Join For Free

last week we completed the last of the 23 part design pattern series. this article brings all of those patterns together for your reference.

design patterns refcard
for a great overview of the most popular design patterns, dzone's design patterns refcard is the best place to start.


behavioral patterns

used to manage algorithms, relationships and responsibilities between objects.


  • gives more than one object an opportunity to handle a request by linking receiving objects together.
  • encapsulate a request as an object, thereby letting you parameterize clients with different requests, queue or log requests, and support undoable operations
  • given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.
  • provides a way to access the elements of an aggregate object without exposing its underlying representation.
  • allows loose coupling by encapsulating the way disparate sets of objects interact and communicate with each other.  allows for the actions of each object set to vary independently of one another.
  • captures and externalizes an object's internal state so that it can be restored later, all without violating encapsulation.
  • define a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.
  • allows an object to alter its behaviour when its internal state changes. the object will appear to change its class.
  • defines a set of encapsulated algorithms that can be swapped to carry out a specific behaviour
  • defines the skeleton of an algorithm in a method, deferring some steps to subclasses. template method lets subclasses redefine certain steps of an algorithm without changing the algorithms structure.
  • allows for one or more operation to be applied to a set of objects at runtime, decoupling the operations from the object structure.

structural patterns

used to form large object structures between many disparate objects.

  • convert the interface of a class into another interface clients expect. adapter lets classes work together that couldn't otherwise because of incompatible interfaces.
  • decouple an abstraction from its implementation so that the two can vary independently
  • allows you to compose objects into tree structures to represent part-whole hierarchies. composite lets clients treat individual objects and compositions of objects uniformly.
  • allows for the dynamic wrapping of objects in order to modify their existing responsibilities and behaviours
  • provide a unified interface to a set of interfaces in a subsystem. façade defines a higher-level interface that makes the subsystem easier to use.
  • facilitates the reuse of many fine grained objects, making the utilization of large numbers of objects more efficient.
  • allows for object level access control by acting as a pass through entity or a placeholder object.

creational patterns

used to construct objects such that they can be decoupled from their implementing system.


  • provides an interface for creating families of related or dependent objects without specifying their concrete classes.
  • allows for object level access control by acting as a pass through entity or a placeholder object.
  • define an interface for creating an object, but let the subclasses decide which class to instantiate. the factory method lets a class defer instantiation to subclasses
  • prototype create objects based on a template of an exsiting object through cloning.
  • singleton ensure a class has only one instance and provide a global point of access to it.


design patterns refcard
for a great overview of the most popular design patterns, dzone's design patterns refcard is the best place to start.


Object (computer science) Design

Opinions expressed by DZone contributors are their own.

Popular on DZone

  • JUnit 5 Tutorial: Nice and Easy [Video]
  • Making Your SSR Sites 42x Faster With Redis Cache
  • How to Leverage Method Chaining To Add Smart Message Routing in Java
  • How to Upload/Download a File To and From the Server

Comments

Java Partner Resources

X

ABOUT US

  • About DZone
  • Send feedback
  • Careers
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • MVB Program
  • Become a Contributor
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 600 Park Offices Drive
  • Suite 300
  • Durham, NC 27709
  • support@dzone.com
  • +1 (919) 678-0300

Let's be friends:

DZone.com is powered by 

AnswerHub logo