下载文档到电脑,查找使用更方便
还剩46页未读
继续阅读
关 键 词:Java设计模式,Java,设计,模式,PPT,课件
文库吧所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。文档简介
【正文】
块之间。当两个模块之间存在紧密的耦合关系时,最好的方法就是分离接口和实现:在依赖之间定义一个抽象的接口使得高层模块调用接口,而底层模块实现接口的定义,以此来有效控制耦合关系,达到依赖于抽象的设计目标 。 抽象 的稳定性决定了系统的稳定性,因为抽象是不变的,依赖于抽象是面向对象设计的精髓,也是依赖倒置原则的核心 。 依赖 于抽象是一个通用的原则,而某些时候依赖于细节则是在所难免的,必须权衡在抽象和具体之间的取舍,方法不是一层不变的。依赖于抽象,就是对接口编程,不要对实现编程 。 面向对象设计原则 接口 隔离 原则( ISP) 对于接口隔离原则,其核心思想是:使用多个小的专门的接口,而不要使用一个大的总接口 。具体 而言,接口隔离原则体现在:接口应该是内聚的,应该避免“胖”接口。一个类对另外一个类的依赖应该建立在最小的接口上,不要强迫依赖不用的方法,这是一种接口污染 。 接口 有效地将细节和抽象隔离,体现了对抽象编程的一切好处,接口隔离强调接口的单一性。而胖接口存在明显的弊端,会导致实现的类型必须完全实现接口的所有方法、属性等;而某些时候,实现类型并非需要所有的接口定义,在设计上这是“浪费”,而且在实施上这会带来潜在的问题,对胖接口的修改将导致一连串的客户端程序需要修改,有时候这是一种灾难。在这种情况下,将胖接口分解为多个特点的定制化方法,使得客户端仅仅依赖于它们的实际调用的方法,从而解除了客户端不会依赖于它们不用的方法 。 分离 的手段主要有以下两种: 委托分离,通过增加一个新的类型来委托客户的请求,隔离客户和接口的直接依赖,但是会增加系统的开销。 多重继承分离,通过接口多继承来实现客户的需求,这种方式是较好的。 面向对象设计原则 里氏代换 原则( LSP) 里 氏 替换原则核心 思想是: 子类必须能够替换其基类 。这一思想体现为对继承机制的约束规范,只有子类能够替换基类时,才能保证系统在运行期内识别子类,这是保证继承复用的基础。在父类和子类的具体行为中,必须严格把握继承层次中的关系和特征,将基类替换为子类,程序的行为不会发生任何变化。同时,这一约束反过来则是不成立的,子类可以替换基类,但是基类不一定能替换子 类。 里氏 替换 原则,主要着眼于对抽象和多态建立在继承的基础上,因此只有遵循 了里氏 替换 原则,才能保证继承复用是可靠地。实现的方法是 面向接口编程 :将公共部分抽象为基类接口或抽象类 ,在 子类中通过覆写父类的方法实现新的方式支持同样的职责 。 里氏替换 原则是关于继承机制的设计原则,违反 了里氏替换 原则就必然导致违反开放封闭原则 。 里氏替换 原则能够保证系统具有良好的拓展性,同时实现基于多态的抽象机制,能够减少代码冗余,避免运行期的类型判别。 设计模式 Java设计模式 创建模式 创建模式 工厂模式( Factory) 原型 模式( Prototype) 生成器模式( Builder) 单态模式( Singleton) Java设计模式 创建模式 创建模式 工厂模式( Factory) 工厂模式就相当于创建实例对象的 new,虽然这样做,可能多做一些工作,但会给系统带来更大的可扩展性和尽量少的修改量。在实际应用中,工厂方法用得比较多一些,而且是和动态类装入器组合在一起应用。 简单工厂 (SimpleFactory) 工厂方法 (FactoryMethod) 抽象工厂 (AbstractFactory) 工厂模式 简单工厂 简单 工厂 UML C r e a t o r+f a c t or y ( ) : P ro d u c tC o n c r e t e P r o d u c tP r o d u c t in t e rf a c e c re a t e 工厂模式 简单工厂 简单工厂 模式特点 优点: 模式 的核心是工厂类,该类中含有必要的判断逻辑,可以决定在什么时候创建哪一个产品类的实例,客户端可以免除直接创建产品对象的责任,而仅仅负责“消费”产品。 简单 工厂模式实现了对责任的分割。 缺点: 当 产品类有复杂的多层次等级结构时,工厂类只有它自己。以不变应万变。 模式 中工厂类集中了所有的产品创建逻辑,形成一个无所不知的全能类。 将 多个创建逻辑放在一个类中,当产品类有不同接口种类时,工厂类需要判断在什么时候创建某种产品,使得系统在将来进行功能扩展时较为困难。 该 模式采用静态方法作为工厂方法,而静态方法无法由子类继承,因此工厂角色无法形成基于继承的等级结构。 工厂模式 工厂方法 工厂方法 UML C r e a t o r in t e rf a c e + f a c t ory ( ) : P rod u c tC o n c r e t e P r o d u c t 1P r o d u c t in t e rf a c e C o n c r e t e P r o d u c t 2C o n c r e t e C r e a t o r 1+ f a c t ory ( ) : P rod u c tC o n c r e t e
链接地址:https://www.wenkub.com/doc-113577663.html