
Design pattern
文章平均质量分 82
No Silver Bullet
业精于勤荒于嬉,行成于思毁于随。
学业由于勤奋而专精,由于玩乐而荒废;德行由于独立思考而有所成就,由于因循随俗而败坏。
——出自(唐)韩愈《进学解》
展开
-
大话设计模式(六)工厂方法模式
大话设计模式(六)工厂方法模式前言 今天主要讲解工厂方法模式。工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。工厂方法模式是简单工厂模式的进一步抽象和推广。它遵循了“开放—封闭”原则,保持了封装对象创建过程。工厂方法模式 工厂方法模式同样属于类的创建型模式又被称为多态工厂模式。工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟原创 2016-10-09 11:23:17 · 45114 阅读 · 0 评论 -
大话设计模式(七)抽象工厂模式
大话设计模式(七)抽象工厂模式菜鸟程序员碰到问题,只会用时间来摆平。前言 今天主要讲解抽象工厂模式。抽象工厂模式(Abstract Factory Pattern)是工厂方法模式的进一步抽象,其英文原话”Provide an interface for creating families of related or dependent objects without specifying thei原创 2016-10-09 13:36:27 · 45314 阅读 · 2 评论 -
大话设计模式(一)简单工厂模式
今天主要设计简单工厂模式即静态工厂设计模式与工厂模式即抽象模式。其中,简单工厂模式属于类的创建型模式,又叫做静态工厂方法模式。通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类。简单工厂模式中包含的角色及其职责:1.工厂(Creator)角色 简单工厂模式的核心,它负责实现创建所有实例的内部逻辑。工厂类可以被外界直接调用,创建所需的产品对象。 2原创 2015-04-12 16:35:37 · 54061 阅读 · 2 评论 -
大话设计模式(八)抽象工厂模式进化
大话设计模式(八)抽象工厂模式进化前情回顾 在博文《大话设计模式(七)抽象工厂模式》中,我们了解了抽象工厂设计模式。在讲解反射机制时,我们提到反射机制实现了程序由编译时到运行时变量的指定。我们的设计不能防止需求的更改,那么我们的理想就是让变动变得最小。结合前面的代码讲解,当我们需要增加产品C时,那么我们就需要增加3个类。并修改3个类。//抽象产品C,定义了产品的公共方法,产品A、B和C属于一个产品原创 2016-10-10 20:49:30 · 44826 阅读 · 0 评论 -
大话设计模式(五)观察者模式
大话设计模式(五)观察者模式概念 在阎宏博士的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象.........原创 2016-09-05 17:38:20 · 45122 阅读 · 0 评论 -
大话设计模式(四)单例模式的优与劣
大话设计模式(四)单例模式的优与劣前言 首先来明确一个问题,那就是在某些情况下,有些对象,我们只需要一个就可以了,比如,一台计算机上可以连好几个打印机,但是这个计算机上的打印程序只能有一个,这里就可以通过单例模式来避免两个打印作业同时输出到打印机中,即在整个的打印过程中我只有一个打印程序的实例。 简单说来,单例模式(也叫单件模式)的作用就是保证在整个应用程序的生命周期中,任何一个时刻,单例类原创 2016-09-25 17:15:05 · 44768 阅读 · 0 评论 -
大话设计模式(二)代理模式
代理模式主要使用了java的多态,干活的是被代理类,代理类主要是接活。1.概述因为某个对象消耗太多资源,而且你的代码并不是每个逻辑路径都需要此对象,你曾有过延迟创建对象的想法吗(if和else就是不同的两条逻辑路径)?你有想过限制访问某个对象,也就是说,提供一组方法给普通用户,特别方法给管理员用户?以上两种需求都非常类似,并且都需要解决一个更大的问题:你如何提供一致的接口给某个对原创 2015-05-22 15:07:45 · 51435 阅读 · 0 评论 -
大话设计模式(三)动态代理设计模式
Java动态代理类位于Java.lang.reflect包下,一般主要涉及到以下两个类:(1).InterfaceInvocationHandler:该接口中仅定义了一个方法Object:invoke(Objectobj,Methodmethod,Object[]args)。在实际使用时,第一个参数obj一般是指代理类,method是被代理的方法,如上例中的request()原创 2015-06-05 15:38:43 · 51046 阅读 · 0 评论 -
剑指Offer——知识点储备-设计模式
剑指Offer——知识点储备-设计模式设计模式设计模式的六大原则(1)单一职责原则(有且仅有一个原因引起类的变化);(2)里氏替换(任何父类出现的地方子类都可以替换);(3)依赖倒置(依赖抽象而不是依赖具体);(4)接口隔离(接口的方法尽量少)(注意:单一职责注意的是类和接口职责单一,是业务上的划分);(5)迪米特原则(一个对象应该对其他对象有最少的了解);(6)开闭原则(OCP)(对内原创 2016-11-07 15:58:32 · 47860 阅读 · 0 评论