Obviously taken to an extreme it’s bad, but I think it’s fine to have a function that can do one thing two or more different ways and ignore a certain parameter if one of the ways doesn’t need it. I’ve done some programming against the Win32 API and this is what jumped to mind for me, and I think it’s the typical case here. If I were designing from scratch I might split it into n functions that do it one way, but it’s such a small difference I wouldn’t fret over it. And of course making a change to the Windows API is an undertaking, probably not worth it in most cases.
Obviously taken to an extreme it’s bad, but I think it’s fine to have a function that can do one thing two or more different ways and ignore a certain parameter if one of the ways doesn’t need it. I’ve done some programming against the Win32 API and this is what jumped to mind for me, and I think it’s the typical case here. If I were designing from scratch I might split it into n functions that do it one way, but it’s such a small difference I wouldn’t fret over it. And of course making a change to the Windows API is an undertaking, probably not worth it in most cases.