一些软件设计的原则
一些软件设计的原则 1. Don’t Repeat Yourself (DRY) 2. Keep It Simple, Stupid (KISS) 把一个事情搞复杂是一件简单的事,但要把一个复杂的事变简单,这是一件复杂的事。
3. Program to an interface, not an implementation 喜欢组合而不是继承 依赖倒置原则 4. Command-Query Separation (CQS) - 命令-查询分离原则 查询:当一个方法返回一个值来回应一个问题的时候,它就具有查询的性质; 命令:当一个方法要改变对象的状态的时候,它就具有命令的性质; 5. You Ain’t Gonna Need It (YAGNI) 只考虑和设计必须的功能,避免过度设计。只实现目前需要的功能,在以后您需要更多功能时,可以再进行添加。
6. Law of Demeter - 迪米特法则 最少知识原则(Principle of Least Knowledge) 不要和陌生人说话
如果你想让你的狗跑的话,你会对狗狗说还是对四条狗腿说? 如果你去店里买东西,你会把钱交给店员,还是会把钱包交给店员让他自己拿?
对于对象 O 中一个方法 M ,M 应该只能够访问以下对象中的方法:
对象 O; 与 O 直接相关的 Component Object; 由方法 M 创建或者实例化的对象; 作为方法 M 的参数的对象。 7. 面向对象的 S.O.L.I.D 原则 Single Responsibility Principle (SRP) - 职责单一原则 一个类,只做一件事,并把这件事做好,其只有一个引起它变化的原因