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

  • Home
  • SEARCH
  • 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 915559
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 15, 20262026-05-15T17:54:31+00:00 2026-05-15T17:54:31+00:00

I have a class, ClassA that uses a client I wrote to send text

  • 0

I have a class, ClassA that uses a client I wrote to send text messages, TextClient, to send some text messages via a call to the static method

TextClient.Send(string text, string destination)
// where destination is a phone number

However, I also have a mail client class, MailClient, which sends emails with the same signature:

MailClient.Send(string text, string destination)
// where destination is an email address

I would like to “inject” which of these clients should be used – is this possible?

(Note: I’m aware of problems that might arise when there are entirely different rules for what values destination can hold and be considered valid, but the values are fetched from someplace else, so this class doesn’t need to bother. That’s why I want to abstract this away in the first place.)

  • 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-15T17:54:31+00:00Added an answer on May 15, 2026 at 5:54 pm

    Basically, get rid of the static methods. Create an interface (IMessageClient) and then two implementations (TextClient and MailClient) with instance methods implementing the interface. Then you can inject the appropriate IMessageClient into the rest of the application with ease.

    You certainly can use delegates to avoid creating the interface here – but I would definitely change to using interfaces instead:

    • The names involved (the interface name, method name and parameter names) convey information when you’re using them
    • It allows for multiple methods in the same interface
    • It prevents methods which happen to have the same argument types but a completely unrelated meaning from being used accidentally
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

i have a class that uses a proxy class inside to call a service
Let's say that I have class , that uses some functionality of dict .
I have a class written in C++ that uses also some definitions from cuda_runtime.h,
I have a class that my client uses to Get() a packet. The packet
I have a class that uses sockets to send and receive data asynchronously over
I have a class that uses My.Computer.Network.Ping to get a boolean value on whether
I have a class that uses XStream and is used as a transfer format
I have a class that uses org.apache.ant and the class is very simple, it's
I have a class that uses priority queue to display 5 strings in ascending
I have a custom class that uses boost mutexes and locks like this (only

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.