Можешь объяснить принцип Open/Closed в софтваре, включая его историю, основные идеи и как его применяют в паттернах вроде State и Strategy? — ДейлиПреп