Questions tagged [object-oriented-design]
Object-oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem.
1,741 questions
2
votes
3
answers
226
views
Adding "caller specific" special cases to a factory
So I have this setup with a factory:
class Base;
class A : public Base;
class B : public Base;
...
class Factory
{
public:
Base* CreateBase(std::string TypeToCreate, const Parameters& P)
...
0
votes
6
answers
291
views
Design pattern for exposing different parts of interface to different entities
In a certain program I would like to have three objects, say, a, b, and c, with c being a shared private member (sub-object) of a and b. The data between the three objects shall only go this way:
a &...
1
vote
3
answers
275
views
How does Object-Oriented Design fit into N-Layered Architecture?
Normally an N-Layered application is structured as follows.
User Interface layer
Business Logic Layer
Data Access Layer
DAL contains objects (data containers) representing business entities. The BLL ...
5
votes
5
answers
977
views
Handling class specific behavior: polymorphism vs instanceof
I'm designing a system with different types of components, and I'm trying to decide whether to use polymorphism or instanceof checks for handling type-specific behavior.
I see two possible approaches:
...
3
votes
0
answers
259
views
How to encapsulate functions inside a library
I'm working on a project that uses an in-house library, which is also used by other projects.
There are some classes and methods in other classes that are not used outside the library itself, is there ...
2
votes
5
answers
296
views
Refactoring object of large set of properties
I have a class that looks like:
class Vehicle:
coordinates: GeoCoordinates
speed: float
rpm: float
egt: float
// 100+ other parameters
A repertoire of concrete classes that use ...
2
votes
3
answers
998
views
Is breaking encapsulation a necessary compromise for serialization?
I've been considering the way to solve this problem for a while, and I'm currently stuck between two options I both feel are suboptimal. Here's an abstract example of what I'm dealing with:
I have a ...
2
votes
3
answers
546
views
Implementing factory that return the correct type
Imagine I have a factory that must create object based on unknown input (let's say user input).
class Base;
class MyFactory {
static unique_ptr<Base> CreateBase(Input& input);
}
Now this ...
2
votes
6
answers
1k
views
Is it ok to assert on the behavior of return values of a testable class?
So I have a dialog for generating a random password. The user can set min, max, character categories (upper, lower, etc.). What the user basically does is configuring a StringGenerator that does the ...
1
vote
3
answers
467
views
Should everything be buildable?
You have some class that performs a certain job
public class MyClass {
public MyClass() {
// ...
}
// ...
}
Then, a spec change comes around. The responsibility of the class is the ...
0
votes
3
answers
178
views
Exposing dependencies results in "fat" constructor. What should you do next?
You take a non-testable class with a lot of static dependencies and expose, and expose until they are all explicitly declared in a constructor
But halfway through that nice plan, you notice your ...
1
vote
2
answers
248
views
Abstraction for user notification
We have a desktop Swing application. It executes operations against a DB. It could be plain DML, it could be procedures. In both cases, it could result in an error. In that case, we need to display a ...
1
vote
1
answer
379
views
Mapping complex objects to other similar complex objects
I am working on two applications that serve the same purpose. The first application is more feature rich and its types are more complex, but uses old technologies and will be retired. It will ...
2
votes
2
answers
425
views
In unit testing: How to abstract a dependency of subject under test?
Disclaimer: I am learning unit testing. I am also kind of beginner in object-oriented design.
Currently, I am involved in the development of an application to manage the finance of a humble food ...
6
votes
4
answers
1k
views
How to avoid init methods when 2 objects need the reference of each other?
According to https://softwareengineering.stackexchange.com/a/334994/432039, I know init is a code smell and should be avoided, and one of the solutions is to use a builder to hold the state first ...
3
votes
1
answer
611
views
Object-oriented programming design with relational database tables
I want to understand what is considered best-practice to better align with OOP when handling relational databases. I cannot find any online examples where classes and a more maintainable/re-usable ...
24
votes
16
answers
19k
views
How far can you push Object Oriented Programming?
A getter is a failure to design an object. It violates encapsulation which is a core principle of object oriented programing.
Now please tell me, how do you design a libraries hash table collection ...
2
votes
2
answers
938
views
Should private attributes or public attributes be the default in Python classes?
In python we use a leading _ to make object attributes implicitly "private". If we want to give people set/get access we can use the @property decorator. Or, if setting/getting is allowed ...
19
votes
6
answers
9k
views
Is utilizing a singleton for a cache an antipattern?
I'm currently writing an MVC application and I need a class that can:
A: get, add and remove data(specifically a TreeSet of sorted strings that I want stored in memory, but I doubt the data itself is ...
14
votes
5
answers
5k
views
How to "Tell, don't ask" when 2 objects involves in the condition and the decision at the same time?
According to Explanation on how "Tell, Don't Ask" is considered good OO, I know the following is bad:
if(a.isX){
a.doY();
}
public class A{
public boolean isX;
public void ...
-3
votes
1
answer
302
views
How should I architect a cricket scoring app?
Cricket scoring is complex and I want to build an app in part to practice good design principles/patterns and develop a clean solution.
A few high level classes I have in mind are:
Match | Innings | ...
0
votes
1
answer
169
views
How to model in OOP interactions with entities in other systems?
Assume we are designing a typical bank account management system. Customers can have one or more accounts. Customers can deposit cash, withdraw cash or transfer money to another account (and, of ...
0
votes
1
answer
225
views
Shopping Cart Design with SRP: Handling Cart Creation and Update Separately
I'm working on designing a shopping cart system that respects the single responsibility principle. However, I'm facing a challenge when it comes to handling cart creation and updating separately.
...
0
votes
4
answers
292
views
What is the advantage/disadvantage of returning a UnSubscribe class to Observer as opposed to just calling a UnSubscribe method of Observable?
There are two ways to provide a way unsubscribe in Observer Design Pattern.
1. Provide a simple void UnSubscribe method:
public void UnSubscribe(IObserver observer){
// remove observer from List of ...
2
votes
5
answers
431
views
Refactoring Java class for a cleaner design
I inherited some code that I have spent some time reviewing to get a better handle on its design.
There is one class that I came across that I have an idea for refactoring, but I am wondering if it I ...