Software Design Flashcards
interface
everything that must be known to users
method
a block of code that only runs when it is called
public methods of a class
APIs
ArrayList
a resizeable array implementation of the list interface in Java
a special form of association that is used to express that instances of one class are parts of an instance of another class
aggregation
everything that must be known to users
interface
the act of keeping both the data and the computation in the same place in order to limit the number of contact point between different parts of your system
encapsulation
3 ways of escaping refrences
1) returning a refrence to an external object
2) storing a external refrence internally
3) leaking a refrence through a shared structure
object that can’t be changed
immutable
disadvantage of immutability
creating more objects, garbage collection
extended interface
extended with methods returning only refrences to immutable objects
extended with methods returning only refrences to immutable objects
extended interface
copy constructor
a classical technique for copying objects
number of relationships between entities
coupling
a classical technique for copying objects
copy constructor
how hard to read and understand is the program
reading complexity
number and types of relationships between entities
structural complexity
complexity of decision in your program
decision complexity
representation of data used and relationships between the data elements in your program
data complexity
a graphical notation used to construct and visualise the static structure of a software system by showing the system’s entities
class diagram
they model possibel relationships between classes
association