Class Family Accord - Abstract

 

An Accord class family is a hierarchy of classes for which another class hierarchy has been designated as corresponding. Class  A0 is the top of the class family, class A1 extends A0, class An extends An-1.

The partner of this class family is B0 at the top, Bn extends Bn-1. Class family A and B are have an Accord relationship if, by design intention, An corresponds to Bn. In each level, there is at least one method that overrides or defines a variant with a behavior representative of the progression of requirements.

The intention of this design concept is to maintain this correspondence when, as requirements evolve, the design calls for extending An and Bn into An+1 and Bn+1. The reason for maintaining this relationship would be that A has new or refined behaviors that only make sense with reference to the state or behaviors of B at the same level.

 

To realize this relationship in the Java programming language, a designer could simply document the intention. However, coding would inevitably require explicit down cast to force references to the intended levels. This white paper suggests a set of Java annotations to make the Accord relationship between class families explicit and generate the necessary dispatch code and casts. The resulting generated code would in effect provide a parametric override capability.

 

At a minimum an annotation @Accord  designates a class as the head or subclass in a class family. Its attribute has an attribute, partner, to identify the other class family. Methods that are intended to follow the progression are annotated as @Covariant. The effect is to make the method be a covariant override. Its parameter referring to a class at the same inheritance level in the partner family is treated a covariant. A prototype precompiler is (to be) provided for research purposes.

Views: 137

Comment

You need to be a member of Codetown to add comments!

Join Codetown

Happy 10th year, JCertif!

Notes

Welcome to Codetown!

Codetown is a social network. It's got blogs, forums, groups, personal pages and more! You might think of Codetown as a funky camper van with lots of compartments for your stuff and a great multimedia system, too! Best of all, Codetown has room for all of your friends.

When you create a profile for yourself you get a personal page automatically. That's where you can be creative and do your own thing. People who want to get to know you will click on your name or picture and…
Continue

Created by Michael Levin Dec 18, 2008 at 6:56pm. Last updated by Michael Levin May 4, 2018.

Looking for Jobs or Staff?

Check out the Codetown Jobs group.

 

Enjoy the site? Support Codetown with your donation.



InfoQ Reading List

How Cloudflare Solved a Congestion Bug in quiche

Cloudflare has recently shared how they uncovered an issue in their Rust implementation of CUBIC, a congestion controller algorithm, which prevented it from recovering from a scenario of heavy packet loss at the start of a connection.

By Gianmarco Nalin

Building a European Cloud Orchestration Platform within an Enterprise

Modern cloud deployments involve many tools with different lifecycles, creating a heavy burden on engineers. The Kubernetes ecosystem offers a unified Control Plane approach. Sharing best practices through tech talks and inner-source collaboration can create an engaged community and drive adoption.

By Ben Linders

Presentation: Rust at the Core - Accelerating Polyglot SDK Development

Spencer Judge discusses the architectural pattern of building a shared core in Rust with language-specific layers on top. Drawing from his work on Temporal's SDKs, he shares lessons on navigating FFI boundaries, bridging async concepts, and managing memory safely. He explains the limitations of native extensions and how emerging tech like WebAssembly can streamline cross-language architecture.

By Spencer Judge

Cloudflare Ships Agent Skills for Zero Trust Deployment and Migration

Cloudflare released the Cloudflare One stack, an open-source library of agent skills for planning, deploying, and managing Zero Trust environments. The skills include automated migration logic for Zscaler and Palo Alto Networks, the same logic used in Cloudflare's Descaler program that has moved enterprise customers in hours rather than months.

By Steef-Jan Wiggers

Slack Outlines Four-Phase Journey to a Multi-Cloud AI Serving Platform

Slack has outlined how its AI serving infrastructure evolved through four distinct phases, moving from a self-managed Amazon SageMaker deployment to a multi-cloud architecture spanning AWS Bedrock and Google Cloud Vertex AI.

By Matt Foster

© 2026   Created by Michael Levin.   Powered by

Badges  |  Report an Issue  |  Terms of Service