结构型模式

结构型模式:在解决了对象的创建问题之后,对象的组成以及对象之间的依赖关系就成了开发人员关注的焦点,因为如何设计对象的结构、继承和依赖关系会影响到后续程序的维护性、代码的健壮性、耦合性等。对象结构的设计很容易体现出设计人员水平的高低,这里有7个具体的结构型模式可供研究,它们分别是: 

适配器模式:

代码逻辑:

根据客户端实例化的球员,调用不同类的方法(进攻,防守),因为外籍中锋不会英文,所以将姚明做为参数实例化翻译者,在翻译者中调用中文的进攻,防守

 

何时用:

1.系统的数据和行为都正确,但接口不符时,我们就应该考虑用适配器。就像很多笔记本的电池都是不一样的电压,有了个适配器,就都可以实现充电的功能。 

2.两个类所做的事情相同或相似,但是具有不同的接口时要使用它

 

桥接模式:

代码逻辑:

客户端实例化手机类,(里氏转换)根据不同的手机类型(N或M),传进不同的参数(游戏或通信录) ,调用其中的方法

 

何时使用:实现系统可能有多个角度分类,每一种角度都可能变化,那么把这种多角度分离出来让它们独立变化,减少它们之间的耦合。把抽象部分和实现部分分离,使它们可以独立的变化,每种实现的变化不会影响其他实现。

 

组合模式:

代码逻辑:

具体公司类,实例化一个总公司,向泛型集合中添加数据,在实例化一个分公司,向里面添加数据, 以此类推,具有层次性,最后将其遍历出来。下图是解释层次性

何时使用:

1.需求中使体现部分与整体层次的结构时

2.整体与部分可以被一致对待

3.将对象组合成树形结构以表示”部分-整体“的层次结构。组合模式使得用户对单个对象和组合对象的使用具有一致性。

 

装饰模式:

代码逻辑:

 客户端实例化人,实例化具体的服饰,通过装饰过程,一层一层的嵌套进去,然后在一层一层的调用方法(不是遍历,而是一层一层地显示出来)

 

何时使用:

1.需要把所需的功能按正确的顺序串联起来进行控制

2.为已有功能动态地添加更多功能地一种方式

 

外观模式:

代码逻辑:

实例化基金,通过购买基金,来按照代码中的内容购买相应的股票,国债,房地产

 

何时使用:

为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用

 

享元模式

代码逻辑:

 通过哈希表的键值判断,来实例化新的网站,如果之前实例化过则不实例化。

 

何时使用:

1.避免大量非常相似类的开销

2.减少相似类的实例化,如果有差异的地方,可以通过外部调用进来,可以较少存储的开销

 

代理模式:

代码逻辑:

通过代理类,将客户端传进来的被追求者(jiaojiao)传到追求者类中,通过在代理类中赋值来实现,追求者方法的调用 

 

何时使用:

1.为其他对象提供一种代理以控制对这个对象的访问

2.两者彼此不接触,通过代理来交流

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值