We present a detailed study of non-leptonic two-body decays of B mesons based on a generalized factorization hypothesis. We discuss the structure of non-factorizable corrections and present arguments in favour of a simple phenomenological description of their effects. We discuss tests of the factorization hypothesis and show how it may be used to determine unknown decay constants. In particular, we obtain f D s = (234 [plusmn] 25) MeV and f D * s = (271 [plusmn] 33) MeV.