Welcome!

AJAX & REA Authors: RealWire News Distribution, Roger Strukhoff, Bob Gourley, Mark O'Neill, Kevin Benedict

Related Topics: Java, XML, SOA & WOA, AJAX & REA

Java: Product Review

Design Patterns in Java LiveLessons Review

LiveLessons Video Training the Downloadable Version

I have spent the past few weeks watching this video series. I started watching it on the treadmill in the morning before work. I did that until I hit lesson 5. It is 4 hours and 20 minutes long. I started watching lesson 5 in front of the computer, not because I didn't want to walk for over four hours, but because I wanted to look at the code you can download with these lessons.

In lesson 5 covers a ton of patterns. The thing I like most about the way the patterns are introduced is that they are introduced working with other patterns. The way patterns should be used, together.

He uses lots of diagrams and walks through the tons of code making sure the patterns are thoroughly cover.

The thing I liked most about the course was that the speaker is not a pattern zealot. He makes sure to tell you when you would not want to use patterns and why. He gives the advantages and disadvantages of each pattern.

The downloadable code is very well organized and usable. It was really nice to just import the project, build it, and run it. No issues at all. I am not usually that lucky with Java samples.

You do not need to know Java to watch this course. I do very very little in Java. I am in Objective-C or C# 90% of the time I am in code. I do have a lot of experience with patterns at all levels (code, integration, architectural, information management, enterprise, etc.). Although you can do without Java, I do recommend you have OOP under your belt. I also felt having the past experience with pattern really helped me keep up.

If you don't have pattern experience, I think you may have to work a little harder to keep up. That is not a bad thing because the material covered is real worth the extra effort to get under your belt. The more you work at understanding the concepts the the speaker cover, the more embedded in your development thought process it will become.

Below is a brief overview of each lesson. They are taken from the publisher's web site.

Lesson 1:
Experts in most domains perform quite differently than beginners. For example, professional athletes, musicians, and dancers move fluidly and effortlessly, without focusing on each individual movement. Likewise, when master software developers write code, they approach it differently than novices, drawing on years of design experience to help guide their solutions.

When watching experts perform, it's often easy to forget how much effort they put into reaching these high levels of achievement. Continuous practice, repetition, and mentoring from other experts are crucial to their success. At the heart of all these activities is knowledge and mastery of patterns, which are reusable solutions to common problems that arise within particular contexts.

In this lesson you learn to recognize the importance of design experience when becoming a master software developer. You also learn what patterns are and how they help codify design experience to improve software quality and developer productivity. In addition, you learn the common characteristics of patterns and pattern descriptions. Finally, you learn about the history of the Gang of Four book and its patterns, as well as learn about key types of relationships among patterns.

Lesson 2:
While it’s certainly possible to discuss patterns in the abstract, good design and programming practices are not best learned through generalities and platitudes. Instead, it’s more effective to see how significant programs can be made easier to write and read, easier to maintain and modify, and more efficient and robust via the application of time-proven software patterns.

This lesson therefore presents an overview of an expression tree processing app that we use as a case study throughout the course. You learn about the goals of this case study, which provides a realistic–yet tractable–context in which to explore the why, the how, and the benefits and limitations of applying many Gang of Four design patterns to an application written in Java. Using the case study as a guide, you also learn how to recognize key structural and behavioral properties in a domain, as well as understand the case study's functional and non-functional requirements.

All the pattern-oriented software presented in the case study is available in open-source form from the course website. You can see throughout the course that applying Gang of Four patterns in the case study not only improves the application’s modularity, extensibility, and quality but also enhances its portability so that it runs on a range of Java platforms, including Android and Eclipse.

Lesson 3:
Algorithmic decomposition is a historically popular software development method that structures software based on the actions performed by algorithms in a program. It decomposes general actions in an algorithm iteratively and recursively into more specific actions. The design components in an algorithmic decomposition typically correspond to processing steps in an execution sequence, which are usually implemented via functions or procedures.

In this lesson you learn how to develop an algorithmic decomposition of the expression tree processing app case study. You also learn how to evaluate the benefits and limitations of algorithmic decomposition. This material provides a baseline for comparison with our pattern- and object-oriented expression tree processing app presented in subsequent lessons.

Lesson 4:
Object-oriented design is a method of planning a system of interacting objects to solve software problems. This design paradigm employs hierarchical data abstraction, where components are structured based on stable class/object roles and relationships, rather than functions corresponding to actions (as is the case with algorithmic decomposition). Moreover, object-oriented design associates actions with classes of objects in a manner that emphasizes high cohesion and low coupling. In many well-designed object-oriented programs, classes and objects are defined and associated in accordance with patterns and combined to form frameworks.

In this lesson you learn how to develop an object-oriented design for the expression tree processing app case study. In addition, you learn how to evaluate the benefits and limitations of object-oriented design relative to the algorithmic decomposition approach presented in Lesson 3.

Lesson 5:
The book Design Patterns: Elements of Reusable Object-Oriented Software (the so-called “Gang of Four” book) presents 23 patterns that document recurring solutions to common problems that arise when developing software in particular contexts. In this lesson you learn how more than a dozen patterns from the Gang of Four book can be applied to the Java-based expression tree processing app case study to resolve key design problems and improve the apps modularity, extensibility, portability, and quality. This lesson forms the bulk of the course and covers the following patterns:

• Composite, which treats individual objects and multiple, recursively-composed objects uniformly.
• Bridge, which separates an abstraction from its implementation(s) so the two can vary independently.
• Interpreter, which when given a language, defines a representation for its grammar.
• Builder, which separates the construction of a complex object from its representation.
• Iterator, which accesses elements of an aggregate without exposing its representation.
• Strategy, which defines a family of algorithms, encapsulates each one, and makes them interchangeable.
• Visitor, which centralizes operations on an object structure so that they can vary independently.
• Command, which encapsulates the request for a service as an object.
• Factory Method, which provides an interface for creating an object, but leaves the choice of the concrete type to a subclass.
• State, which allows an object to alter its behavior when its internal state changes, making object appear to change its class.
• Template Method, which provides a skeleton of an algorithm in a method, deferring some steps to subclasses.
• Singleton, which ensures a class only has one instance and provides a global point of access.

The lesson also touches on several other Gang of Four patterns, including Abstract Factory, Adaptor, Decorator, and Observer.

Lesson 6:
The pattern- and object-oriented version of the expression tree processing app case study presented in Lesson 5 provided many improvements compared with the algorithmic decomposition approach described in Lesson 3. For example, it's much more modular and extensible, its design matches the domain better, and it incurs less space overhead. The design of the expression tree process app also exhibits “high pattern density.” For instance, nearly all its classes play a role in one or more Gang of Four patterns. In addition, patterns help clarify the relationships of the many classes comprising the case study’s design. The same pattern-oriented design can be implemented readily in many popular object-oriented programming languages. For example, the Java and C++ solutions are nearly identical, modulo minor syntactic and semantic differences in these two languages. Although pattern- and object-oriented solutions are powerful, becoming a master software developer requires a balanced and nuanced understanding of the pros and cons of patterns. In this lesson, you learn how to evaluate both the benefits and limitations of patterns.

I highly recommend this video series to anyone working in an object oriented language.

Get the video series here.

If you have no design pattern experience at all, below are a few of the best available on the topic.

More Stories By Tad Anderson

Tad Anderson has been doing Software Architecture for 18 years and Enterprise Architecture for the past few.

Cloud Expo Breaking News
Cloud Computing is evolving into a Big Three of Amazon Web Services, Google Cloud, and Microsoft Azure. Cloud 360: Multi-Cloud Bootcamp, being held Nov 4–5, 2014, in conjunction with 15th Cloud Expo in Santa Clara, CA, delivers a real-world demonstration of how to deploy and configure a scalable and available web application on all three platforms. The Cloud 360 Bootcamp, led by Janakiram MSV, an analyst with Gigaom Research, is the first bootcamp that introduces the core concepts of Infrastructure as a Service (IaaS) based on the workings of the Big Three platforms – Amazon EC2, Google Compute Engine, and Azure VMs. Bootcamp attendees will get to see the big picture and also receive the knowledge needed to make the best cloud decisions for their business applications and entire enterprise IT organization.
Scott Jenson leads a project called The Physical Web within the Chrome team at Google. Project members are working to take the scalability and openness of the web and use it to talk to the exponentially exploding range of smart devices. Nearly every company today working on the IoT comes up with the same basic solution: use my server and you'll be fine. But if we really believe there will be trillions of these devices, that just can't scale. We need a system that is open a scalable and by using the URL as a basic building block, we open this up and get the same resilience that the web enjoys.
The Internet of Things is a natural complement to the cloud and related technologies such as Big Data, analytics, and mobility. In his session at Internet of @ThingsExpo, Joe Weinman will lay out four generic strategies – digital disciplines – to exploit emerging digital technologies for strategic advantage. Joe Weinman has held executive leadership positions at Bell Labs, AT&T, Hewlett-Packard, and Telx, in areas such as corporate strategy, business development, product management, operations, and R&D.
SYS-CON Events announced today that DevOps.com has been named “Media Sponsor” of SYS-CON's “DevOps Summit at Cloud Expo,” which will take place on June 10–12, 2014, at the Javits Center in New York City, New York. DevOps.com is where the world meets DevOps. It is the largest collection of original content relating to DevOps on the web today Featuring up-to-the-minute news, feature stories, blogs, bylined articles and more, DevOps.com is where the thought leaders of the DevOps movement make their ideas known.
There are 182 billion emails sent every day, generating a lot of data about how recipients and ISPs respond. Many marketers take a more-is-better approach to stats, preferring to have the ability to slice and dice their email lists based numerous arbitrary stats. However, fundamentally what really matters is whether or not sending an email to a particular recipient will generate value. Data Scientists can design high-level insights such as engagement prediction models and content clusters that allow marketers to cut through the noise and design their campaigns around strong, predictive signals, rather than arbitrary statistics. SendGrid sends up to half a billion emails a day for customers such as Pinterest and GitHub. All this email adds up to more text than produced in the entire twitterverse. We track events like clicks, opens and deliveries to help improve deliverability for our customers – adding up to over 50 billion useful events every month. While SendGrid data covers only abo...
SYS-CON Events announced today that the Web Host Industry Review has been named “Media Sponsor” of SYS-CON's 15th International Cloud Expo®, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. Since 2000, The Web Host Industry Review has made a name for itself as the foremost authority of the Web hosting industry providing reliable, insightful and comprehensive news, reviews and resources to the hosting community. TheWHIR Blogs provides a community of expert industry perspectives. The Web Host Industry Review Magazine also offers a business-minded, issue-driven perspective of interest to executives and decision-makers. WHIR TV offers on demand web hosting video interviews and web hosting video features of the key persons and events of the web hosting industry. WHIR Events brings together like-minded hosting industry professionals and decision-makers in local communities. TheWHIR is an iNET Interactive property.
SYS-CON Events announced today that O'Reilly Media has been named “Media Sponsor” of SYS-CON's 15th International Cloud Expo®, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. O'Reilly Media spreads the knowledge of innovators through its books, online services, magazines, and conferences. Since 1978, O'Reilly Media has been a chronicler and catalyst of cutting-edge development, homing in on the technology trends that really matter and spurring their adoption by amplifying "faint signals" from the alpha geeks who are creating the future. An active participant in the technology community, the company has a long history of advocacy, meme-making, and evangelism.
SYS-CON Events announced today that Verizon has been named “Gold Sponsor” of SYS-CON's 15th International Cloud Expo®, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. Verizon Enterprise Solutions creates global connections that generate growth, drive business innovation and move society forward. With industry-specific solutions and a full range of global wholesale offerings provided over the company's secure mobility, cloud, strategic networking and advanced communications platforms, Verizon Enterprise Solutions helps open new opportunities around the world for innovation, investment and business transformation. Visit verizonenterprise.com to learn more.
SYS-CON Events announced today that TMCnet has been named “Media Sponsor” of SYS-CON's 15th International Cloud Expo®, which will take place on November 4–6, 2014, at the Santa Clara Convention Center in Santa Clara, CA. Technology Marketing Corporation (TMC) is the world's leading business to business and integrated marketing media company, servicing niche markets within the communications and technology industries.
"In my session I spoke about enterprise cloud analytics and how we can leverage analytics as a service," explained Ajay Budhraja, CTO at the Department of Justice, in this SYS-CON.tv interview at the 14th International Cloud Expo®, held June 10-12, 2014, at the Javits Center in New York City. Cloud Expo® 2014 Silicon Valley, November 4–6, at the Santa Clara Convention Center in Santa Clara, CA, will feature technical sessions from a rock star conference faculty and the leading Cloud industry players in the world.
“We are starting to see people move beyond the commodity cloud and enterprises need to start focusing on additional value added services in order to really drive their adoption," explained Jason Mondanaro, Director of Product Management at MetraTech, in this SYS-CON.tv interview at the 14th International Cloud Expo®, held June 10-12, 2014, at the Javits Center in New York City. Cloud Expo® 2014 Silicon Valley, November 4–6, at the Santa Clara Convention Center in Santa Clara, CA, will feature technical sessions from a rock star conference faculty and the leading Cloud industry players in the world.
"We are automated capacity control software, which basically looks at all the supply and demand and running a virtual cloud environment and does a deep analysis of that and says where should things go," explained Andrew Hillier, Co-founder & CTO of CiRBA, in this SYS-CON.tv interview at the 14th International Cloud Expo®, held June 10-12, 2014, at the Javits Center in New York City. Cloud Expo® 2014 Silicon Valley, November 4–6, at the Santa Clara Convention Center in Santa Clara, CA, will feature technical sessions from a rock star conference faculty and the leading Cloud industry players in the world.
Almost everyone sees the potential of Internet of Things but how can businesses truly unlock that potential. The key will be in the ability to discover business insight in the midst of an ocean of Big Data generated from billions of embedded devices via Systems of Discover. Businesses will also need to ensure that they can sustain that insight by leveraging the cloud for global reach, scale and elasticity. In his session at Internet of @ThingsExpo, Mac Devine, Distinguished Engineer at IBM, will discuss bringing these three elements together via Systems of Discover.
The Internet of Things promises to transform businesses (and lives), but navigating the business and technical path to success can be difficult to understand. In his session at 15th Internet of @ThingsExpo, Chad Jones, Vice President, Product Strategy of LogMeIn's Xively IoT Platform, will show you how to approach creating broadly successful connected customer solutions using real world business transformation studies including New England BioLabs and more.
All too many discussions about DevOps conclude that the solution is an all-purpose player: developer and operations guru, complete with pager for round-the-clock duty. For most organizations that is not the way forward. In his session at DevOps Summit, Bernard Golden, Vice President of Strategy at ActiveState, will discuss how to achieve the agility and speed of end-to-end automation without requiring an organization stocked with Supermen and Superwomen.