设计模式——面向对象设计的原则(一)

   设计模式中面向对象设计的原则有六大原则,分别是:里氏代换原则原则、合成\聚合原则、迪米特原则、单一职责原则、开放封闭原则、依赖转换原则

   设计模式其实就是这些原则的基础之上的应用,学好设计模式中的各个原则也是为了加深理解和灵活运用每个设计模式,也是为了更好把握住时机去运用每个设计模式。一起应用这些原则时可以使一个软件系统更易被维护和扩展。

   下面一一介绍每一个原则:

里氏代换原则

   解释:子类型必须能够替代他们的父类型。

   通俗的讲:老鼠的儿子打的洞必须和老鼠的一样,让其他的老鼠看不出来到底是儿子打的还是它爸爸打的。这就符合了里氏代换原则。

   也正因为这个原则,使得继承复用成为了可能。

合成\聚合复用原则

   解释:尽量使用合成\聚合,尽量不要使用类继承。

   子类和父类中有很紧密的依赖关系,以至于父类中的任何变化必然会导致子类变化,当需要复用子类时,如果继承下来的实现不合适解决新的问题的时候,则父类只能重写,这种依赖关系限制了灵活性限制了复用性。


   例如图中,如果操作系统这个类重写了,那么手机操作系统的这个类就要发生相应的变化,手机操作系统的的所有子类也需要发生变化。所以这种依赖关系限制了灵活性限制了复用性。

   如果运用合成\聚合复用原则,改成下图的模式,这样优先使用合成\聚合将每个类封装,并集中到单个任务上,这样类和类继承层次保持较小规模,并且不太可能增长到不可控制的庞然大物。



迪米特法则:

   解释:如果两个类不必彼此直接通信,那么这两个类就不应当发生直接的相互作用。如果其中一个类需要调用另一个类的某一个方法的话,可以通过第三者转发这个调用。

   通俗地讲,一个类应该对自己需要耦合或者调用的类知道得最少,你(被耦合或调用的类)的内部是如何复杂都和我没关系,那是你的事情,我就知道你提供了这么多的public方法,我就调用这么多,其他的我一概不关心。


    如上图中,IT部门是抽象类,IT部门的人员是IT部门的子类。任何部门有关于IT的问题,直接找IT部门就可以了,而不必凭借在IT部门有没有熟人,IT部门都会安排人员来处理。这就降低了其他部门与IT部门的耦合性这样无论IT部门无论发生什么形式的人员流动,都不会对其他部门造成影响。


评论 25
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值