Definition: A term used in the context of computer programming, specifically in the field of object-oriented programming (OOP), which refers to the method of designing an object that is loosely coupled with its environment. It allows objects to interact without causing any direct interactions between them, providing a more intuitive and flexible design approach compared to other OOP paradigms such as inheritance or polymorphism.