반응형
반응형
본문 바로가기

공부/Object-Oriented Design23

3.2 – Separation of Concerns 3.2 – Separation of Concerns Concern Our goal is to create flexible reusable, and maintainable code. Separation of concerns creates more cohesive classes using abstraction, encapsulation, decomposition, and generalization. This creates a system that is easier to maintain because each class is organized so that it only contains the code that it needs to do its job. Modularity is increased in turn.. 2021. 9. 21.
3.1 – Coupling and Cohesion 3.1 – Coupling and Cohesion Coupling Coupling for a module captures the complexity of connecting the module to other modules. Tightly Coupled If your module is highly reliant on other modules, you would say this module is tightly coupled to others. Loosely Coupled If your module finds it easy to connect to other modules, this module is loosely coupled to others. Degree Ease Flexibility Cohesion .. 2021. 9. 21.
2.6 – Generalization Inheritance is used to describe the relationship between classes. What are the three ways in which this relationship is advantageous? - Subclasses that inherit from the same superclass include attributes and behaviors from the superclass. - Changes can be made easily and quickly to a large group of subclasses by making changes to the superclass they inherit from. - Code can be reused through inh.. 2021. 9. 18.
2.5 – Decomposition 2.5 – Decomposition 2021. 9. 18.
2.4 – Encapsulation 2.4 – Encapsulation Besides attributes, a class also defines behaviors through methods. For an object of the class, the methods manipulate the attribute values or data in the object to achieve the actual behaviors. You can expose certain methods to be accessible to objects of other classes, thus, providing an interface to use the class. Encapsulation helps with software changes. The accessible i.. 2021. 9. 18.
2.3 – Abstraction 2.3 – Abstraction When you design object-oriented programs, you create models of how objects are represented in your system. These models cannot be designed without forethought. In order for a system to be object-oriented, it should adhere to certain design principles. Abstraction Rule of Least Astonishment Attributes of a Student 2021. 9. 18.
2.2 – Languages Evolution 2.2 – Languages Evolution Imperatvie Paradigm - COBOL and Fortran followed an imperative paradigm which broke up large programs into smaller programs called subroutines, which are like methods in Java. Abstract Data Type - An abstract data type is a data type that is defined by the programmer and not built into the language. An abstract data type is essentially a grouping of related information .. 2021. 9. 18.
2.1 – Models: Bridging Concepts and Solutions 2.1 – Models: Bridging Concepts and Solutions You need conceptual design to break down the problem further and further into manageable pieces. You also need technical design to describe and refine the solution, so that it is clear enough for developers to implement as working software. The goal during software design is to construct and refine models of all the objects. 2021. 9. 18.
1.6 – Record, Organize, and Refine Components 1.6 – Record, Organize, and Refine Components Collaborators: Collaborators are other classes that the class interacts with to fulfill its responsibilities. Bank Customer Bank Machine How does a Bank Machine authenticate the bank customer? 2021. 9. 18.

반응형