Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 807207
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T00:22:07+00:00 2026-05-15T00:22:07+00:00

I have an issue with some inheritance I’m doing. Basically, I have an abstract

  • 0

I have an issue with some inheritance I’m doing. Basically, I have an abstract class called LineCalculator, which, as it suggests, calculates lines of an equation. From there, I inherit this base class in a LinearLineCalculator, which calculates lines on a Cartesian coordinate system, and a PolarLineCalculator, which calculated lines on the polar coordinate system.

public abstract class LineCalculator {

    // Begins calculating a line based on the parameters
    protected final Path2D.Double calculateLine(...) {
    }

    // Takes in an X value, does something with it, 
    // and returns the resulting X and Y values
    protected abstract double[] handlePoint(double x);
}

So LinearLineCalculator just calculates the corresponding Y value with an equation, while PolarLineCalculator would calculate the radius from the equation and the X value, and convert that to polar coordinates (in this case, X acts as θ, in degrees or radians).

LineCalculator then calculates the line in a sort of “free for all” manner, where the threads calculating the line take and calculate X and Y values as fast as they can and reports them to the base class. The base class then deals with constructing the line from the data calculated by the threads.

My problem is that I’ve implemented a modified version, where it is calculated in a sequential manner, where the base class blocks on each thread until it gets the first value. Then it waits for the second ordered value, and so on, allowing it to construct the line on the fly.

This inheritance model works perfectly, because I was able to modify the base class without modifying any of the inheritors and have it still work. But I want to be able to switch out the implementations interchangeably, for example for some lines, calculate it “free for all” style, and for some lines, calculate it sequentially.

My question is is there a pattern or design that allows me to change out the base class implementation, but keep the super class implementation without violating the DRY principle?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-15T00:22:07+00:00Added an answer on May 15, 2026 at 12:22 am

    Sounds to me like you really want composition, not necessarily inheritance.

    I’d have a Calculator interface, with Rectangular and Polar implementations. Give the class that does the calculation a Calculator reference that you initialize in its constructor. That lets you swap out the implementation easily. You’ll need a CalculatorFactory as well.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

i have a input tag which is non editable, but some times i need
I have a script that appends some rows to a table. One of the
I have a login.jsp page which contains a login form. Once logged in the
We manage a site for a medical charity. They have a number of links
I have a project that adds elements to an AutoCad drawing. I noticed that
I have a new web app that is packaged as a WAR as part
I have several USB mass storage flash drives connected to a Ubuntu Linux computer
I have a snippet to create a 'Like' button for our news site: <iframe
I have found this example on StackOverflow: var people = new List<Person> { new
Let say I have the following desire, to simplify the IConvertible's to allow me

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.