java 设计模式之六大原则

设计模式不是技术,而是思想!

模式==规律:重复出现,一种解决

更多的使用接口以及抽象类

 

六大原则:   

1.     开闭原则

a)     对扩展开,对修改闭

b)     多使用抽象类:

在设计类时,对拥有公用功能的相似类进行抽象化处理,将公用的方法都放入抽象类中,方法的调用则交给子类。扩展时,只需要增加新的子类而不用修改原有代码

c)     多使用接口:

接口只定义子类应该实现的接口函数,而不实现具体的公用功能。扩展时,方法大致同抽象类

2.     里氏代换原则

a)     子类必须能够替换成它们的基类

b)     尽量从抽象类或接口继承,而不是从具体类继承

c)     例子:正方形是长方形

3.     依赖倒转原则

a)     依赖于抽象,而不依赖于具体。针对接口编程不针对实现编程

b)     依赖也就是耦合,分为3种:

l  零耦合(Nil Coupling)关系:两个类之间没有任何依赖关系

l  具体耦合(Concrete Coupling) 关系:两个具体类直接有依赖关系。如一个具体类直接引用另一个具体类

l  抽象耦合(Abstract Coupling) 关系:一个具体类和一个抽象类之间有依赖关系,能保持类之间最大的灵活性

c)     依赖倒转原则是达到开闭原则的途径

d)     里氏代换原则是依赖倒转原则的基础

4.     接口隔离原则

a)     使用多个接口隔离比使用单个接口隔离好。即一个类对另一个类(或接口)的依赖性应当是建立在最小的接口上

b)     接口对应的角色:一种逻辑上的抽象,接口的划分直接带来类型的划分。依据具体的角色性质来编写接口

c)     角色对应的接口:依据最小的功能模块来编写接口,为同一个角色提供多个宽窄不同的接口

5.     迪米特法则(最少知道原则)

a)     talk only to your immediatefriemds

l  一个软件应该尽可能少的与其它实体发生相互作用

l  每一个软件单位对其它的单位都只有最少的知识,并且值局限于那些与本单位密切相关的软件单位

b)     降低类之间的耦合,不希望类之间直接建立依赖关系,而是通过中介类来联系

6.     合成复用原则

a)     合成和聚合都是表示关联的特殊种类。聚合表示整体与部分的关系,表示“拥有”;合成则是一种更强的“拥有”,部分和整体的生命周期一样。

b)     复用的实现:

l  通过合成/聚合,即合成服用原则,尽量使用合成/聚合,而不使用继承

l  继承

c)     合成/聚合、继承的选择:

只有当以下条件全部满足时,才应当使用继承

l  子类是父类的一个特殊种类,而不是父类的一个角色

l  永远不会出现当前的子类需要转换为另外一个类的子类的情况

l  子类应该是扩展父类,而不是置换(override)或销毁(nullify)父类

l  只有在分类学角度上有意义时才使用继承

d)     “Has-A”与“Is-A”的区别


整理自:java高手真经_系统架构卷

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值