首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

OO学习--相关设计模式

2012-08-30 
OO学习--有关设计模式?原则:???? ? ?面向对象编程,培养面向对象思想。DDD,设计模式是面向对象的左右手。??

OO学习--有关设计模式

?

原则:

?

?
?? ? ?面向对象编程,培养面向对象思想。DDD,设计模式是面向对象的左右手。

?? 对象是人类的正常思维方式,它是表示具体东西或抽象的事物,它有单一的职责和统一的行为。(比如想到一个长方形的周长或面积,不能应当就想到对应的周长或面积,而是应当先想到长方形对应的是一个对象,它有对应的属性,长和宽,然后有对应的行为周长或面积还可以对应的相应的增长)

?? “优先使用对象组合,而不是继承”。

?? ISP接口分离原则。比如比如会报警的门AlarmDoor不能只实现一个有open,close,alarm三个行为的接口,根据ISP原则不能把它们门各报警的接口混为一堂,不能让Alarm模块的变化引起了Door这个不同行为模块的变化,因此要把它们分离。分成二个不同的接口一个是Door接口, 一个是Alarm接口。
?? 继承表示的是(is-a)关系,接口实现表示的是拥有(like-a)的关系。比如会报警的门AlarmDoor因为它本质上是门,拥有报警的功能,所以就应当这么实现class AlarmDoor extends Door implements Alam;是一个(is-a)用继承表示;有一个(has-a)用组合表示。

“对扩展开放,对修改关闭”开-闭原则。

? ? ? ?SOLID:面向对象设计的五项原则 (是SRP单一职责原则、OCP开闭原则、LSP李式代换原则、ISP依赖反转原则和 DIP接口分离原则,首字符的缩写)

?

设计模式:

二个阶段的学习

?1.熟记多少种的设计模式,格式规范,最普通,最经典的用法。

?2.什么场合用,这是关键。

?

以下是为什么用此模式的解释:

一、state状态模式

?? ? 状态不同引起的行为的不一致。状态模式中,一个状态对应一个状态子类,每个状态子类实现父类提供的行为,外界在创建状态引用类的同时,在引用类内部根据初始的参数值创建对应的状态类,状态引用类和状态类本身是一体的,是强耦合关系,状态类的创建和初始化由状态引用类来管理是完全合理的,所在外部调用时只是调用一状态引用类的接口,它不关心状态引用类的内部实现,不去关心状态类的创建和切换。

?

二、strategy策略模式
?? 选择不同的算法但引起的结局一样。

?? 策略模式里,是为了实现某个行为而采取的不同策略,采取何种何种策略由外部条件决定。??

?? 与状态模式区别:状态模式是随着状态的变化,做同样的行为,但结果是不一样的(如:银行不同级别信用卡用户,可以透支的金额是不一致的);策略模式是指做同样的行为,产生同样的结果,但选择的策略、实现方式是不一致的(如用不同的方式上传图片,用不同的算法压缩文件,用不同的图形方式展示相同的数据变化)。其实它们本来就是不一样的运用场景,本没有什么可比性。

?

三、Builder模式

?? Builder模式用于创建复杂对象。创建方式和组件创建的分离。(比如车子的组装,包括方向盘,轮子,发动机)

?

?

?

五、适配器模式adapter

?? 先有二个相似的接口,为了把二个接口整理成同一个接口,而需要用到适配器模式。

六、brigde模式

??有二个(或多个)变化角色的不同组合实现M*N个对象,为了不用M*N个子类而是通过为M+N个类动态组合来实现,需要用到桥模式。

?

七、proxy模式

只对原有接口进行了少许的改变和控制。这时需要用到proxy模式(经典的权限控制)

?

热点排行