这几种设计模式(组合模式和享元模式还没看)中,装饰模式和代理模式可以用一种实现方式实现,当然这仅仅是从代码的角度来看。实际使用的过程中,装饰模式需要在装饰器中对目标对象进行包装(这也是装饰模式的目的),代理模式是在对把客户端和目标对象链接起来,在客户端调用的时候,代理把调用转接给目标对象,可能在调用前后做一些处理,比如鉴权或者数据封装处理。就模式本上而言,区别不大,关键看使用人的理解以及意图。
装饰模式的定义:
在不必改变原类文件和使用继承的情况下,动态的扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。其中这个动态的意思是只有在run的情况下才能知道结果,在编译期间是不知道结果的,这跟继承是不一样的。
桥接模式:
把抽象部分和它的实现部分分离开来,让两者可独立变化。这里的抽象部分指的是一个概念层次上的东西,它的实现部分指的是实现这个东西的(功能)部分,分离就把实现部分从它要实现的抽象部分独立出来,自我封装成对象。
最简单的例子就是,人这个对象里面有很多方法描述人的动作,但是这些动作其他动物也会有,所以把人和人的动作分离开来,然后分别抽象出一层。
桥接在物理层面上的意思是指依据OSI网络模型的链路层的地址,对网络数据包进行转发的过程。简单的说就是通过网桥可以把两个不同的物理局域网连接起来,实现不同局域网之间的通信。在桥接模式中,抽象部分和实现部分分别隶属于不同层面上的东西,然后在桥接模式中把抽象部分和实现部分链接起来类似物理网络中通过网桥把不同的局域网链接的方式,所以称之为桥接模式。
以上纯属个人见解,欢迎留言指正^v^~