模式是一种对现实世界的概念抽象,建筑模式,设计模式,营销模式,商业运作模式各行各业都有自己的模式。
这里说的设计模式是软件设计里的模式,主要是指面向对象的软件设计。遵照设计模式,可以有效的提高软件的可维护性和可复用性,提高开发软件的效率,避免过多的出现再造轮子的现象。
我学习模式是从知道大名顶顶的四人帮的力作《设计模式》,真正感觉到了设计模式给软件设计所带来的诸多好处。《设计模式》内容精练,实例较少,我的理解力太差,实际学习中,我是结合jeffyyan的java于模式学的。
设计软件的几个原则,这个也是设计模式的精髓所在:
1.开-闭原则
1).客户的需求是不稳定的,通过扩展已有的软件系统而不是通过修改软件系统来满足客户的需求,这样的软件系统就满足开-闭原则,即软件系统要有一定的灵活性和适应性。
2).已有的模块,特别是抽象层的模块不能修改,保证软件系统的稳定性和延续性。
解决问题的关键是抽象化,把它与具体实现分离开来。接口(interface),抽象类的应用
对可变性封装:将可变性封装到一个对象里。
2.抽象类
抽象类不会有实例,一般作为父类为子类继承,一般包含这个系的共同属性和方法。
注意:好的继承关系中,只有叶节点是具体类,其他节点应该都是抽象类,也就是说具体类
是不被继承的。将尽可能多的共同代码放到抽象类中。
3.里氏代换原则
在有基类出现的地方,子类均可以替代。
当两个具体类关系违反里氏代换原则时,一种办法是抽象出一个基类,作为这两个类的父类,
一种是应用组合聚合关系建立关系。
不要为了使用某些类的方法(功能)而滥用继承。
4 依赖倒转原则
抽象不应该依赖与细节,细节应当依赖与抽象。
要针对接口编程,而不是针对实现编程。
传递参数,或者在组合聚合关系中,尽量引用层次高的类。
主要是在构造对象时可以动态的创建各种具体对象,当然如果一些具体类比较稳定,就不必在弄一个抽象类做它的父类,这样有画舌添足的感觉
5 接口隔离原则
定制服务的例子,每一个接口应该是一种角色,不多不少,不干不该干的事,该干的事都要干
6 合成/聚合原则
尽量使用合成聚合原则,少用慎用继承。
合成:一荣俱荣,一损俱损,整体和部分的生命周期是一样的
聚合:部分可以是整体的一部分,也可以脱离整体而存在。
区分Has a和Is a的问题
7 迪米特法则
最少知识原则。不要和陌生人说话。
对象适配器模式是(依赖倒转原则)原则的典型应用
分享到:
相关推荐
适配器模式分为类适配器模式和对象适配器模式,还有缺省适配器模式。 1. **类适配器模式**: 在类适配器模式中,适配器类通过继承被适配类(Adaptee)并实现目标接口(Target)。这种方式下,适配器和被适配类之间...
在这个Java实现中,我们将深入探讨适配器模式的两大类型:类适配器模式和对象适配器模式,并通过具体的代码示例和UML类图来阐述其工作原理。 首先,我们来理解适配器模式的基本概念。适配器模式就像现实生活中的...
类适配器模式通过继承目标接口和被适配者类来实现,而对象适配器模式则通过包含被适配者对象并实现目标接口来完成适配过程。 1. 类适配器模式: 在类适配器模式中,适配器类是被适配者类的子类。适配器类实现了...
类适配器模式是通过多重继承来实现的,而对象适配器模式则通过组合来实现。下面我们详细探讨这两种方式。 1. 类适配器模式: 在类适配器模式中,适配器类继承自目标接口,并且通常也包含对原始不兼容接口的引用。...
类适配器模式通过继承目标接口和适配者类来实现,而对象适配器模式则是通过组合适配者类来实现。适配器模式常用于旧系统改造或者第三方库的接口调整,它降低了系统的耦合度,增加了系统的灵活性。 以一个具体的例子...
适配器模式可以分为类适配器和对象适配器两种类型。 1. 类适配器:适配器类继承自目标接口,并且包含一个被适配类的实例。 2. 对象适配器:适配器类通过组合的方式包含被适配类的引用,而不是继承。 二、适配器...
类适配器模式通过继承目标接口和适配类来实现,而对象适配器模式则通过包含适配类对象并实现目标接口来达到目的。适配器模式使得旧的代码可以与新的系统无缝对接,避免了大量重复代码的编写,提高了代码的复用性。 ...
类适配器模式是通过继承目标接口(需要适配的接口)和被适配类(原始不兼容的类)来实现的,而对象适配器模式则是通过持有被适配类的实例,并实现目标接口来达到目的。 在Java中,适配器模式的核心组件包括: 1. ...
对象适配器模式是一种设计模式,它允许两个不兼容的对象之间进行通信,通过创建一个适配器类作为中间层,将原始对象的接口转换为客户期望的接口。在Java中,这种模式的应用尤为常见,因为Java的多态特性使得适配器的...
适配器模式主要有两种形式:类适配器模式和对象适配器模式。在类适配器模式中,适配器类继承自目标接口,并包含一个原始不兼容接口的对象。而在对象适配器模式中,适配器类通过组合(拥有)原始接口的对象来实现目标...
适配器模式主要分为两种类型:类适配器和对象适配器。 1. **类适配器**:通过继承适配者类来实现适配。这意味着适配器类既是目标接口的实现,也是适配者类的子类。这种方式的优点是可以重用适配者的所有功能,但在...
- 对象适配器模式则是通过组合的方式实现。适配器类包含一个源类的实例,而不是继承它。当客户对象调用适配器的方法时,适配器会通过组合关系调用适配者对象的方法。 对象适配器的实现与类适配器类似,只是适配器不...
在对象适配器模式中,适配器类持有一个对原始接口实现对象的引用,并通过自己的方法调用这个引用的方法。这种方式更灵活,因为适配器可以适应多个不同的适配对象,只需要改变构造函数传入的参数即可。 2. **类...
2. 对象适配器模式:通过组合原始类并实现目标接口来实现。这种方式更加灵活,因为一个类可以组合多个其他类,不受单继承限制。 在这个“adapter”压缩包中,我们可能会看到以下几个关键部分: 1. `Adapter` 类:...
而在对象适配器模式中,适配器是一个包含原始类对象的类,通过方法委托来实现目标接口,这种方式在Java等单继承语言中更常见,更为灵活。 适配器模式的结构包括以下几个关键角色: 1. 目标(Target)接口:这是客户...
在对象适配器模式中,适配器类不直接继承被适配类,而是持有被适配类的一个实例,并通过这个实例来调用其方法。适配器类实现目标接口,当需要调用被适配类的功能时,适配器类会转发请求给被适配类的实例。这种方式在...