Java Interface Isolation for GUI and Business Logic Modularity

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The development and maintenance of client applications in Object Oriented GUI-based systems become complex due to the interrelationships between View, Handler, and Business Object sub-systems, leading to a mixing of design steps and loss of modularity advantages.

Innovation Solution

Defining clear interfaces between the View and Business Logic sub-systems, and between the Handler and Business Logic sub-systems, allowing for independent development of each sub-system, with the View obtaining business data through a Data Interface and the Handler invoking business functions via a Business Interface, effectively isolating GUI from business logic.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of manufacture

If View, Handler, and Business Object sub-systems are separated into distinct modules, then modularity and maintainability are improved, but the complexity of managing interrelationships between these sub-systems increases

Engineering Contradiction:
ImprovemodularityVSAvoidinterrelationship management
Core Design Contradiction:
Ease of manufactureVSDevice complexity

Solution Approach 1:

The patent introduces interface objects as intermediaries between the View, Handler, and Business Object sub-systems. These interface objects serve as standardized communication channels that define contracts for data exchange and method invocation. By inserting this intermediary layer, the patent reduces the complexity of managing direct interrelationships between sub-systems while preserving modularity, as each sub-system interacts through well-defined interfaces rather than direct connections.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent segments the client application into distinct sub-systems (View, Handler, Business Object) with clearly defined responsibilities and introduces separate interface objects for each sub-system. This segmentation allows each component to be developed, tested, and maintained independently, improving modularity while the structured interface definitions manage the complexity of interrelationships.

Inventive Principle:
Principle #1Segmentation

2Productivity

If design steps for View, Handler, and Business Object are mixed into one process, then development speed increases, but the advantages of modular design are lost

Engineering Contradiction:
Improvedevelopment speedVSAvoidmodular design advantage
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The patent establishes interface definitions as preliminary actions before implementing the actual sub-systems. By defining the interfaces first with clear contracts for data exchange and method signatures, developers can then implement each sub-system independently according to these pre-defined specifications. This preliminary structuring enables parallel development of different sub-systems while maintaining modular design advantages, thus resolving the contradiction between development speed and modular design benefits.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The interface objects serve as universal communication protocols that can be used across multiple sub-systems. The standardized interface definitions allow different sub-systems to interact through common conventions, enabling developers to work on different components simultaneously while maintaining consistency. This universality supports both rapid development through reusability and modular design through clear separation of concerns.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS7606717B2Isolating user interface design from business object design using Java interface concepts
Publication Date: 2009.10.20 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US7606717B2 patent drawing
  • US7606717B2 patent drawing
  • US7606717B2 patent drawing

AI summary

A method of developing a computer software system comprising defining a first interface between a proposed view sub-system and a proposed business logic sub-system, defining a second interface between a proposed handler sub-system and the proposed business logic sub-system, creating the view sub-system in accord with the second interface, and creating the handler sub-system in accord with the second interface. In another form, the invention provides is a related computer software system and computer program.