设计模式的七大原则

一、单一职责原则

概念:

        一个类只负责一项功能,例如一个订单类,就只负责对订单的操作,不能去涉及到对用户或者商品的操作。(注意,一般情况下单一职责原则是作用于类上,但是如果一类的方法数量足够少,也可以把单一职责原则作用于方法上)

二、开闭原则

概念:

        开闭原则是编程中最基础最重要的原则。一个软件实体,如类,函数,模块应该对扩展开放,对修改关闭。(当软件需求发生变化时,尽量通过扩展软件实体的行为来实现变化,而不是修改已有的代码来实现方法)

三、接口隔离

概念:

  •  使用多个专用的接口,而不是单一的总接口。
  • 一个类对另外一个类的依赖性应当是建立在最小的接口上的。

四、依赖倒置

概念:

        程序要依赖于抽象接口,不要依赖于具体实现。

        简单的说就是面向抽象编程,这样能降低了客户与实现模块间的耦合。        

五、里氏代换

概念:

        一个软件实体如果适用一个父类的话,那一定适用于其子类,所有引用父类的方法必须能透明地使用其子类的对象,子类对象能够替换父类对象,而程序逻辑不变。

        子类可以扩展父类的功能,但不能改变父类原有的功能。就是说,子类可以实现父类的抽象方法,但尽量不要覆盖父类的非抽象方法。子类中可以增加自己特有的方法。

(通俗的说,不要乱用继承关系 or 不要乱写父类,否则可能会违反里氏代换。

        问:违反了又怎么样?                        答:容易出问题)

六、合成复用

概念:

        软件复用时,要尽量先使用组合或者聚合等关联关系来实现,其次才考虑使用继承关系来实现。如果要使用继承关系,则必须严格遵循里氏替换原则。合成复用原则同里氏替换原则相辅相成的,两者都是开闭原则的具体实现规范。

通常类的复用分为继承复用合成复用两种。

继承复用虽然有简单和易实现的优点,但它也存在以下缺点。

  1. 继承复用破坏了类的封装性。因为继承会将父类的实现细节暴露给子类,这种复用又称为“白箱”复用。
  2. 子类与父类的耦合度高。这不利于类的扩展与维护。
  3. 它父类限制了复用的灵活性。从继承而来的实现是静态的,在编译时已经定义,所以在运行时不可能发生变化。


采用组合或聚合复用时,可以将已有对象纳入新对象中,使之成为新对象的一部分,新对象可以调用已有对象的功能,它有以下优点。

  1. 它维持了类的封装性。因为成分对象的内部细节是新对象看不见的,所以这种复用又称为“黑箱”复用。
  2. 新旧类之间的耦合度低。这种复用所需的依赖较少,新对象存取成分对象的唯一方法是通过成分对象的接口。
  3. 复用的灵活性高。这种复用可以在运行时动态进行,新对象可以动态地引用与成分对象类型相同的对象。

七、迪米特法则

概念:

        通俗的来讲,就是一个类对自己依赖的类知道的越少越好。

        对于被依赖的类来说,无论逻辑多么复杂,都尽量地的将逻辑封装在类的内部,对外除了提供的public方法,不对外泄漏任何信息。

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值