随笔分类 -  设计模式

摘要:开闭原则(OCP)是面向对象设计中“可复用设计”的基石,是面向对象设计中最重要的原则之一,其它很多的设计原则都是实现开闭原则的一种手段。遵循开闭原则设计出的模块具有两个主要特征:(1)对于扩展是开放的(Open for extension)。这意味着模块的行为是可以扩展的。当应用的需求改变时,我们可... 阅读全文
posted @ 2015-04-06 21:15 偶my耶 阅读(2478) 评论(2) 推荐(0) 编辑
摘要:迪米特法则的简写为 LoD,看清楚中间的那个 o 是小写。迪米特法则也叫做做最少知识原则(Least Knowledge Principle,简称 LKP)说的都是一会事,一个对象应该对其他对象有最少的了解,通俗的讲一 个类对自己需要耦合或者调用的类应该知道的最少,你类内部是怎么复杂、怎么的纠缠不清... 阅读全文
posted @ 2015-04-05 20:01 偶my耶 阅读(6076) 评论(5) 推荐(0) 编辑
摘要:在讲接口隔离原则之前,我们先明确一下我们的主角,什么是接口,接口分为两种:一种是实例接口 (Object Interface),在 Java 中声明一个类,然后用 new 关键字产生的一个实例,它是对一个类型的事 物描述,这是一种接口,比如你定义个 Person 这个类,然后使用 Person zh... 阅读全文
posted @ 2015-04-04 20:30 偶my耶 阅读(8157) 评论(0) 推荐(0) 编辑
摘要:所谓依赖倒置原则(Dependence Inversion Principle )就是要依赖于抽象,不要依赖于具体。简单的说就是对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合。面向过程的开发,上层调用下层,上层依赖于下层,当下层剧烈变化时,上层也要跟着变化,这就会导致模块的复... 阅读全文
posted @ 2015-04-02 21:26 偶my耶 阅读(2307) 评论(1) 推荐(2) 编辑
摘要:里氏替换原则,OCP作为OO的高层原则,主张使用“抽象(Abstraction)”和“多态(Polymorphism)”将设计中的静态结构改为动态结构,维持设计的封闭性。“抽象”是语言提供的功能。“多态”由继承语义实现。定义1:如果对每一个类型为T1的对象 o1,都有类型为 T2 的对象o2,使得以... 阅读全文
posted @ 2015-04-01 23:08 偶my耶 阅读(1351) 评论(0) 推荐(0) 编辑
摘要:定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T... 阅读全文
posted @ 2015-03-30 21:48 偶my耶 阅读(1614) 评论(3) 推荐(3) 编辑
摘要:定义:在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能。它是通过创建一个包装对象,也就是装饰来包裹真实的对象。设计原则:多用组合,少用继承利用继承设计子类的行为,是在编译时静态决定的,而且所有的子类都会继承到相同的行为。然而,如果能够利用组合的做法扩展对象的行为,就可以在运行时动态地进... 阅读全文
posted @ 2015-03-29 11:42 偶my耶 阅读(326) 评论(0) 推荐(0) 编辑
摘要:定义:在计算机编程中,适配器模式(有时候也称包装样式或者包装)将一个类的接口适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接口包裹在一个已存在的类中。共有两类适配器模式:对象适配器模式-- 在这种适配器模式中,适配器容纳一个它包裹的类的实例。在这种... 阅读全文
posted @ 2015-03-29 11:17 偶my耶 阅读(851) 评论(0) 推荐(1) 编辑
摘要:什么是代理模式?组成:抽象角色:通过接口或抽象类声明真实角色实现的业务方法。代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用。代理模式的定义:为其他对象提供一种代理以控制对... 阅读全文
posted @ 2015-03-28 19:29 偶my耶 阅读(1173) 评论(3) 推荐(1) 编辑