OddDev
OddDev

Reputation: 3734

Should I use an extra class or style the instance?

I'm using a UI framework which doesn't follow a strict MVC design. I create a component and add the appropriated properties to "style" this instance of a class. Some pseudo code:

Button bu = new Button();
bu.setCaption("Something");
bu.addClickListener(...);
bu.setAnotherProperty(1);

However, when do I decide to make an extra class instead of this whole setter block?

Like (pseudo code):

public class MyButton extends Button {

 this.setCaption("Something");
 this.addClickListener(...);
 this.setAnotherProperty(1);

}

Is it a good practice to do it like this always? Is it a bad practice to do it in general? Or is there a special case where one should decide to create a class instead of a huge setter block?

Upvotes: 0

Views: 49

Answers (2)

Kayaman
Kayaman

Reputation: 73578

Your MyButton isn't really (at least based on the code shown) a special type of button. It's just a Button with some parameters set in a certain way. Based on that I would probably not create a separate class, but factory methods that build buttons according to different specifications.

This has the added benefit that if you suddenly realize that you need 2 types of "special" buttons, you'd add another factory method instead of creating another class that's still basically just a Button with some extra make-up.

So instead of Button b = new MyButton(); I'd have something along the lines of (implementation style free) Button b = ButtonFactory.myButton();.

Upvotes: 3

TypeKazt
TypeKazt

Reputation: 318

Do you use your custom button more than once? If so, then it would be good practice to create a separate class. If not, then generally it is not necessary.

Even if this custom button is only used once, I'd still recommend a separate class for "safe keeping".

Upvotes: 0

Related Questions