Object-oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem.
0
votes
1answer
51 views
Do we need servant pattern? What about implementing in parent class?
From wikipedia:
Servant is used for providing some behavior to a group of classes.
Instead of defining that behavior in each class - or when we cannot
factor out this behavior in the common ...
25
votes
4answers
3k views
Does C# 6.0's new null-conditional operator go against the Law of Demeter?
The Law of Demeter states the following:
Each unit should have only limited knowledge about other units: only units "closely" related to the current unit.
Each unit should only talk to its friends; ...
31
votes
6answers
3k views
How do I test a system where the objects are difficult to mock?
I am working with the following system:
Network Data Feed -> Third Party Nio Library -> My Objects via adapter pattern
We recently had an issue where I updated the version of the library I ...
0
votes
1answer
50 views
Object Communication Design
Multiple top-level systems that communicate with each other via messages(events/commands).
The Main class of the program wraps around all the systems and has a message dispacher component wich ...
0
votes
1answer
110 views
Is this avoiding inheritance correctly?
I want to add capabilities for an abstract Model class to send events whenever it updates. To be able to send events, it needs to have access to an EventManager. So, the intent were first, to be able ...
14
votes
1answer
327 views
Why does(/did) Bertrand Meyer think subclassing is the only way to extend a “closed” module?
In Meyer's Object-Oriented Software Construction (1988) he defines the open/closed principle as follows:
A module will be said to be open if it is still available for extension. For example, it ...
7
votes
2answers
163 views
How do I store multiple views of data in memory?
I have a bunch of modules. I can break these modules into different categories that are complete and do not overlap. For example, three categories, with ids that can be expressed as Animal, Vegetable, ...
1
vote
1answer
76 views
Stuck on design when attempting to create an object store
I'm working on a small scale API project but as it will be used and maintained by people that are not Software Engineers to trade I am attempting to keep the design as separate and identifiable as ...
1
vote
0answers
46 views
Assembler vs Entity Translator and Entities vs DTO
I was hoping that someone could explain the exact difference between an Assembler and Entity Translator.
Martin Fowler describes the Assembler as a sort of Mapper(?) which converts DTOs into Domain ...
4
votes
3answers
214 views
What is the best design principle to add behavior in future to your API? [on hold]
I'm designing an API. And, this API will be used by client.
Currently I've two behaviors in a class definition. To illustrate the scenario, sample implementation looks like the following-
public ...
1
vote
0answers
39 views
Storing reference to a model obtained using DataMapper to be able to call save on it
When using the DataMapper pattern, which involves modeling classes containing business logic and knowing absolutely nothing about persistence, caching,... I usually want the models to represent ...
2
votes
3answers
88 views
Can encapsulation be implemented by proper types rather than accessors?
Interesting question came up while designing interfaces at work, now resolved, but I want to ask about the theory behind it.
Is it incorrect to say that properly typed data members of a class provide ...
15
votes
5answers
545 views
How to make a datatype for something that represents either itself or two other things
Background
Here's the actual problem I'm working on: I want a way to represent cards in the card game Magic: The Gathering. Most cards in the game are normal-looking cards, but some of them are ...
1
vote
1answer
80 views
Prevent circular dependencies without introducing intermediary library
TL;DR Below
I'm working on a game server (in Java, but that part is less important), and have decided to split up the server logic from the engine logic; in part because they're in two different ...
2
votes
2answers
251 views
How is encapsulation broken by getters/setters, even when using MVC model [duplicate]
I was thinking about encapsulation in Java and then I thought how getters/setters break encapsulation. After I went through this , I saw many recommendations like to avoid getters/setters on fields ...
2
votes
5answers
163 views
Inheritance when following the Repository Pattern in PHP
I am trying to build a PHP application using the Repository Pattern but I'm not sure how I should implement the save method.
I have an abstract class called ItemRepository which have the following ...
37
votes
6answers
3k views
Should I create a class if my function is complex and has a lot of variables?
This question is somewhat language-agnostic, but not completely, since Object Oriented Programming (OOP) is different in, for example, Java, which doesn't have first-class functions, than it is in ...
2
votes
1answer
74 views
What approach in DataMapper Pattern is better for multiple or joined tables?
Normally, a Data Mapper maps data of one particular table. (Theoretically it should be communicating between Storage and a Domain Object, but its not possible in my case, so I am directly ...
3
votes
1answer
124 views
Design Patterns when Class Needs External Awareness
When I was first taught Object Oriented principles, it was drilled into me that when using objects in a "hasA" relationship (or any similar situations where a helper object encapsulates a discrete ...
3
votes
2answers
52 views
Computing and returning a sub-object where the sub-object is stored in the object
I have a complex object which routinely needs to compute a sub-object representing various aspects of the parent's state as a bundle. For example, imagine the object represents information about an ...
4
votes
2answers
127 views
Who is the Owner of Information? Memento vs. Originator
Imagine for a second that I'm implementing the Memento Pattern, using the following classes.
Classes
An Originator class that has public and private, properties and fields respectively
A Memento ...
0
votes
1answer
68 views
Manipulating data for a single file
I'm looking for a best practice solution for creating an object whose responsibility it is to handle file storage for a single file. I want to be able to read data from the file, write to the file, ...
10
votes
2answers
416 views
Is there a design pattern for managing deep many-to-many relationships?
I'm having trouble defining this data pattern I've come across working on several applications.
It consists of:
An object type which is composed of many objects itself
A second object type, where ...
3
votes
1answer
138 views
Should a new type be created though it only wraps a single field?
Say I have an interface Species that's defined as
public interface Species {
String getId();
String getDescription();
}
The question is simply this: Should I create different classes to ...
7
votes
4answers
890 views
Should Objects with lots of fields be broken up? [duplicate]
When I have an Object that has lots of fields is it better to have them all as fields or try to find logical groupings as their own Objects and make those the fields?
I guess it comes down to which ...
0
votes
1answer
77 views
How should one model an ExchangeService object (in ews-java-api) for sharing MS Exchange connections?
I am creating an application which uses ews-java-api to connect to an MS Exchange server. Once the connection is authenticated, the api dictates use of ExchangeService object for searching mailboxes, ...
2
votes
1answer
75 views
For DI, where to create dependencies (new objects) specifically within framework code?
Basic requirement
I'm making a framework for learning purposes (and likely usage on personal sites).
I'm using dependency injection in classes and I'm trying to design where would be a good place ...
2
votes
1answer
105 views
How to best model an application's settings?
My application has a configuration file and a "Settings" window. When the user confirms the changes in this window they are applied and written to the config file.
These settings are often changed ...
1
vote
1answer
148 views
Private method with a derivable argument - a code smell?
We're implementing a service for creating a subscription where the subscription may be linked to an order. Quick background: the purpose of this service is to allow the customer to receive the item ...
1
vote
4answers
228 views
OOP Principles in Customer and Account classes of a Bank
I am designing a Bank Application which deals with Customers having FD Accounts.
There are two approaches to this :
Approach 1
In this the customer has a list of accounts. The bank application ...
0
votes
1answer
59 views
two repositories with kind of different behavior serving same object
I have a simple object like this
public class Book
{
public List Chapters { get; private set; }
public TableOfContent BookTOC { get; set; }
public string Identifier { ...
1
vote
3answers
131 views
How to understand if a property is a member of a class or I have to create a different class that holds it?
Sometimes when you create a class you can add there several properties (new data members) that you are not certain if you want to do or not. For example, I have a casino slots game. I have tiles and ...
3
votes
3answers
288 views
'Encapsulation Vs Performance' trade-off in a lockable linked list
Main purpose of encapsulation is to protect in-variants of any class(in java).
Here is the complete code for class DList/class lockDList/class DListNode/class LockDListNode.
class DList and it's ...
0
votes
2answers
130 views
How should I structure these Python classes?
Base Class
I have a class called Remote. This class represents a remote machine and has properties such as ip, hostname, username, and password, as well as methods for transferring files to/from the ...
5
votes
1answer
136 views
Design pattern for data structure that contains at most one item of each type
I have a superinterface that several different abstract classes implement: Coverage.
This is for insurance rating. There are several types of different coverage, and those coverages might vary by ...
2
votes
3answers
270 views
How to share data members between classes in C++ without violating encapsulation too much
In C++ let's say I have some class A:
Class A
{
int a1, a2, a3;
void foo();
}
and I need to use a subset of members (a1, a2) in a member function for a second class B.
...
3
votes
2answers
258 views
Python classes with only one instance: When to create a (single) class instance and when to work with the class instead?
Given a Python class which will be instantiated only once, i.e. there will be only one object of the class. I was wondering in which cases it makes sense to create a single class instance instead of ...
0
votes
2answers
68 views
How to better define SRP and “wholesome” objects? [duplicate]
Assume you have a class. It can really be any class that defines a domain concept like an employee, a product on an e-commerce site, or a car. One of those examples that are oldies but goodies. ...
0
votes
0answers
64 views
EF “Code First” and Object/Relational Impedance
I'm trying to learn more about the current orthodoxy with respect to ASP.NET MVC application design, and I stumbled upon something that confuses me, relating to the choice among database design ...
3
votes
3answers
104 views
Is this a valid situation for returning rather than throwing an exception?
This is not something I would ever normally do, but I have a situation where some existing legacy code is being reused in a new application. The code is shared and needs to be used by both the legacy ...
2
votes
2answers
141 views
How to avoid god controller classes and keep single responsibility principle?
The task is to make a migrator from Old DB to New DB using OOP Single Responsibility Principle.
My problem is how can I make this without making the controller a God Class or breaking the single ...
0
votes
1answer
81 views
Should I put the parameters in constructor or in method? (Python 3)
I have the following code:
def __init__(self, vocable_file_path, xsd_file_path, word_list_file_path):
self.vocable_file_path = vocable_file_path
self.xsd_file_path = xsd_file_path
...
4
votes
3answers
323 views
How can I add properties to subclasses and access them without casting from a superclass?
I'm trying to model a multi-dimensional point class in C#. I have about eight different types of points, and there may be more in the future. Right now, I have a superclass (PointBase) that holds all ...
-2
votes
2answers
111 views
How to reference one object with two interfaces? [duplicate]
Suppose I have two interfaces I and J that is implemented by Test class. Now I need one object of class Test that is referenced by I and J both interfaces. I can do it by singleton design pattern. But ...
1
vote
1answer
139 views
Inefficient use of interfaces in OOP (C#)
In my code, I've got two interfaces, let's say IOpenable and IExaminable. IOpenable allows the user to Open or Close the object, and IExaminable allows the user to Examine the object.
Now, we have ...
3
votes
3answers
277 views
“Correct” way to use inheritance
Within a small project, a class Storage is meant to store any type of Item. Now, an Item has a String name, and an interaction. For example, a clock item might implement the interaction increment(int ...
0
votes
4answers
204 views
How to write procedural code in an object oriented language?
I recently started working in domain of mesh generation . My programs usually contains large chunks of procedural code consisting of several phases. Eg.
class MeshAlgo1
{
/* A very long function ...
1
vote
1answer
92 views
How to better isolate JOGL or LWJGL3 dependency from game clients?
I'm currently working on a project to develop a relatively small framework with the goal of supporting game development efforts for students in a course. The scope of this project is an OpenGL-based ...
1
vote
1answer
97 views
HashMap to replace Singletons?
Consider the following: I have controllers and views in a client-application. As this runs purely on the client side, each controller must only exist once.
At first I thought about implementing ...
3
votes
2answers
88 views
COM - with great power comes great responsibility, but at what cost? (looking for advice on coding practices when working with COM)
What is best (or commonly accepted) practice for where to declare COM object variables (scope) and how to handle cleaning them up when using structured error handling?
I just spend a whole load of ...