목록분류 전체보기 (52)
Moe's Tech Blog
Buildings are composed of rooms Although buildings and rooms have slightly different functions, they are essentially treated as generic housing structures An individual can be entered and exited from a building or a room A building or a room can both be used to store furnitures Despite being unique types of objects, they can be dealt with uniformly Composite Design Pattern Achieves two goals 1. ..
Introduction Thereis a common issue when the pre-existing system needs to incorprate third-party libraries or needs to connect to other systems Adapter design pattern Are frequently used because the output of one system may not conform to the expected input of another system Helps to facilitate communication between two existing systems by providing a compatible interface Adapter Pattern Is comp..
Motivation As system gets larger, code gets more and more complex This can get confusing for the client classes in your system to use System complexity is not always a sign of poor design The scope of problem you are trying to solve is so large it requires a complex solution But client classes prefer a simplier, and easy to use interaction Example 1. Consider a large home has many subsystems (el..
is responsible soely for the wholesale creation of objects It's like outsourcing the creation of objects involving several steps Motivation 1. When object creation logic becomes too convoluted When initialization procedure becomes too complex, wants to move this part of code somewhere 2. Initializer is not descriptive (in python) name is always __init__ cannot overload with same sets of argument..
Design Principle 1. Coupling and Cohesion are the metrics used to evaluate design complexity Coupling focuses on complexities between a module and other modules Cohesion focuses on complexities within a module Help better apply object-oriented design principles achieve more managable system Think of badly designed system like a puzzle You can only connect specific puzzle to another puzzle Think ..
Facilitates communication between other components without them necessarily being aware of each other or having direct (reference) access to each other Motivation for using it is: 1. Some components may go in and out of a system at anytime Example 1. Chat room participants 2. Customers on airplane 3. Players on MMORPG (leave the game, suffer disconnection) 2. Makes no sense for them to have a di..
Object Oriented Modeling involves the practice of representing key concepts through objects in software Why Object Oriented Modeling keeps the code organized, flexible, and reusable. Design in the Software Process 1. Expressing Requirements with User Stories Is a big part of building a software system determining what the client wants One of the technique for expressing requirement is user stori..
Step 1: Work example by hand Should be a small problem to solve mentally If problem is unclear --> ask or research If domain knowledge is lacking (i.e. physics behind defining equation of motion) --> research or study till figured out Step 2: Write down what you did Write down exact steps on how you did it, and don't leave anything out This steps are for small instance solved in step 1 (Not gene..