设计模式
文章平均质量分 84
yatmingli
这个作者很懒,什么都没留下…
展开
-
建造者模式--在工地做过的人都懂
定义 建造者模式又称生成器模式,将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。这样我们使用建造者模式,用户只需要指定需要建造的类型,而具体创建过程可以创建不同的表示。 情形 今天周末,家兴的球瘾发作了,约了小榕和小亮去打球.三人去到篮球场,随便找了一个场地热身,然后大家就开打球,他们三个一队,然后对手是另外三个年轻人.一开始,家兴他们那队打得还行,但是还是被虐,对手原创 2016-08-15 19:49:23 · 604 阅读 · 0 评论 -
桥接模式--将抽象和实现变化分离
1)概述 桥接模式将抽象部分和实现部分部分脱耦,使两部分可以独立的变化。抽象类和实现类之间使用组合/聚合而不是继承关系,设计更有扩展性,客户端调用时不用知道实现的细节。 相似场景:家兴最近开发一款新的游戏,公司分配任务的是让他开发各种角色的基本功能,例如LOL的肉盾和法师之类的角色,同时呢,这些角色拥有基本的行动功能,走路,跳跃,放技能等等;家兴马上对这些代码进行开发,他马上用一个继承方式来实现原创 2016-08-29 10:51:05 · 2853 阅读 · 1 评论 -
装饰模式--一个套餐组合的原型
1)概述 装饰模式又称为包装模式。装饰模式以对客户透明的方式给一个对象动态添加一些额外的职责,客户端并不会觉得对象在装饰前和装饰后有什么不同。装饰模式是继承关系的一个替代方案,可以在不使用创造更多子类的情况下,将对象的功能加以扩展;与生成子类相比,它更具有灵活性。 场景: 1.家兴喜欢穿各种各样的衣服,每一种的选择都有不同的展示,效果都不一样;但是无论什么,都是本人穿的衣服,至于怎么搭配看个人原创 2016-08-24 23:17:30 · 623 阅读 · 0 评论 -
工厂方法模式--简单的看法
工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method使一个类的实例化延迟到了子类。 (完全符合开闭原则,解决了简单工厂方法模式添加新的类需要去修改原有的类)结构与角色 Factory:抽象工厂。工厂方法模式的核心,声明工厂方法,返回一个产品。在任何情况下创建对象的工厂类必须继承当前的接口。 ConcreteFactory:具体工厂。实现抽象工厂接口的具体原创 2016-08-14 18:22:08 · 507 阅读 · 0 评论 -
设计模式的分类--以金字塔的形式结构表现
设计模式主要分为三大类,分别是创建模式,结构模式和行为模式。创建模式又分为类的创建模式和对象的创建模式;类的创建模式使用继承改变被实例化的类;使用继承关系,把类的创建延迟到子类(里氏替换原则),从而达到封装了客户端得到具体类的信息,并隐藏了这些类的实例是怎样被创建起来的,只要是由通过工厂方法模式体现; 工厂方法模式:定义一个用于创建对象的接口,让子类决定实例化哪一个类,Factory Method原创 2016-08-14 12:34:00 · 1786 阅读 · 0 评论 -
适配器模式--把不适合的为己所用
1)概述 适配器模式又称为转换器模式、变压器模式、包装模式。适配器模式把一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不一起匹配而无法一起工作的两个类能够一起工作。该模式主要通过一个代理Adapter,在原来的类Adaptee和客户之间进行协调,从而达到兼容的母的,其核心是解决一致性的问题。 相似情景: 1.家兴今天去了深圳深圳湾附近的一个篮球场上打球,和一批黑人一起打球,可是呢原创 2016-08-22 18:17:14 · 1097 阅读 · 0 评论 -
组合模式--部分整体一致对待
1)概述 组合模式也称为合成模式、部分-整体模式(Part-Whole),主要是用来描述部分与整体关系。组合模式将对象组合成树形结构以表示”部分-整体”的层次结构,可以使客户端把一个个单独的成分对象和由它们复合而成的组合对象同等看待。 相似场景 1.家兴表哥开了一家公司饿了么,刚开始的时候就只有一家公司,他表哥让家兴给他开发了一套OA系统,后来随着公司的扩展变大,不断的在其它地方都有新的分公司原创 2016-09-02 18:30:21 · 1196 阅读 · 0 评论 -
外观模式--做一个低调的人
1)概述 外观模式提供了一个统一的接口去访问多个子系统的多个不同的接口。定义一个高层次的接口,使得子系统更加容易被使用。 外观模式提供了一个简单而且公用的接口去处理复杂的子系统,并且没有减少子系统的功能。它遮蔽了子系统的复杂性,避免了客户与子系统直接连接,它减少了子系统与子系统之间的连接,每一个子系统都有它的Facade模式,每个子系统采用Facade模式去访问其他的子系统。外观模式的缺点是限制原创 2016-08-23 19:13:31 · 739 阅读 · 0 评论 -
简单工厂模式--简单的看法
篮球的简单工厂你模式—-设计模式简单设计模式,并不属于23种设计模式,因为它并不符合开闭原则,但是这是一种设计模式,也是最简单的一种设计模式。(代码的形式主要是一java的方式去实现,个人比较喜欢java,欢迎吐槽!)结构与角色: 简单工厂模式的实质是由一个工厂类根据外面或客户端之类的传一个参数过来,动态的决定创建哪一个产品类的实例,前提的是这些产品的类只能是继承一个父类或接口。Facto原创 2016-08-13 17:18:52 · 315 阅读 · 0 评论 -
单例模式--投篮时最好保持一种姿势
1)概述 单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例,提供一个访问它的全局访问点。核心是创建私有的构造函数。可拓展到有限个实例。 情形 1.家兴作为一个资深野球场上的投手,球场全场无死角,投篮技术可是真的很牛逼呀,但是细看他的投篮姿势都是一种,无论在哪一个角度都是一样。下面个人去分析一下家兴的投篮姿势,投篮可是千变万化,每一个位置、高度,加速度都是不一样的,但是家原创 2016-08-20 16:10:59 · 724 阅读 · 0 评论 -
原型模式--简单看法和实例
1)概述 原型模式通过给出一个原型对象来指明所要创建的对象的类型,然后用复制这个原型对象的办法创建出更多同类型的新的对象。其实就是从一个对象再创建另一个可定制的对象,而且不需要知道任何创建的细节,核心就是克隆。 相似的情形有: 1.鸣人使用影分身之术,一下子出现无数的鸣人来 2.每当市场出现了一款新的iphone手机,各大厂家就会争先去模仿出一模一样的手机出来,只是它们和我们的原来原创 2016-08-18 18:57:16 · 561 阅读 · 0 评论 -
Iterator 迭代器模式--隐藏访问
1.概述 迭代器模式可以顺序访问一个容器对象中各个元素,而又不需要暴露该容器对象的内部细节。多个对象聚在一起形成的总体称之为聚集,聚集对象是能够包容一组对象的容器对象。每一个聚集对象都可以有一个或一个以上的迭代器对象,每一个迭代器的迭代状态可以是彼此对立。 相似情景: 1.假设一种场景,家兴买了一个行李箱和一个储物箱,家兴的妈妈帮家兴收拾好行李了,都放在这两个箱子里面,但是由于某种情况,家兴想原创 2016-09-03 23:08:35 · 349 阅读 · 0 评论 -
抽象工厂模式--简单的看法和使用
定义 抽象工厂模式又称Kit模式,是对工厂方法模式的一个升级,它提供了一个创建一系列或相关相互依赖对象的接口,而无需指定它们的具体的类。而它与工厂方法模式的区别是,工厂方法模式只是围绕一个产品来说,而抽象工厂模式是针对多个产品,也就是少和多的区别。结构 Factory:抽象工厂。声明生成抽象产品的方法。 ConcreteFactory:具体工厂。定义生成抽象产品的具体方法,生成一个具体的产品。原创 2016-08-14 19:50:29 · 532 阅读 · 0 评论