设计模式
sunxikai928
这个作者很懒,什么都没留下…
展开
-
《java与模式》-1 看图
uml原创 2017-10-19 10:10:26 · 143 阅读 · 0 评论 -
《java与模式》-15 享元模式
享元模式 对象的结构模式,以共享的方式高效的支持大量的细粒度对象; 享元模式做到共享的关键是区分内蕴状态与外蕴状态; 内蕴状态:存储在享元对象内部的不随环境变化,可以共享; 外蕴状态:随环境变化,不可以共享的状态; 单纯享元模式: 复合享元模式:原创 2017-11-23 17:04:03 · 156 阅读 · 0 评论 -
《java与模式》-14 代理模式
代理模式是对象的结构模式,代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用; 智能引用代理例:金融网站提供查询股票信息的功能,要使用该功能用户必须有权限,而且需要记录;抽象和具体的划分,首先有一个抽象查询的角色 Searcher ,具体查询角色 RealSearcher;辅助功能,两个辅助对象一个查询权限 AccessValidator,另一个做查询的计数器 UsageLo原创 2017-11-22 15:33:33 · 152 阅读 · 0 评论 -
《java与模式》-13 装饰模式
装饰模式也叫包装模式; 装饰模式以对客户透明的方式动态的给一个对象附加上更多责任,客户端不会觉得对象在装饰前和装饰后有什么不同,装饰模式可以在不使用创建跟多子类的情况下,将对象功能加以扩展; 装饰模式常常被称作包裹模式,每一个具体装饰类都将下一个具体装饰类或具体构件类包起来,每一层包裹都提供了一些新的功能; ConcreteDecorator3将ConcreteDecorator2包起来,原创 2017-11-16 17:59:15 · 136 阅读 · 0 评论 -
《java与模式》-12 合成模式
合成模式属于对象的结构模式; 使客户端将单纯元素与复合元素同等看待; 角色:抽象构件角色;树枝角色;树叶角色; 其中树枝角色可以有子节点,树叶角色不可以有子节点,如果根节点是树叶角色那么就变成了只有一个节点的树; 合成模式根据所实现的接口分为两种形式:安全式、透明式; 合成模式可以不提供父对象的管理方法,但是必须在合适的地方提供子对象的管理方法,如add(),remove(),getC原创 2017-11-16 10:43:12 · 158 阅读 · 0 评论 -
《java与模式》-10 原始模型模式
通过给出一个原型对象指明所要创建的对象的类型,然后复制这个对象创造出更多同类型的对象; java 本身支持原始模型模式,Object有一个clone(),可以复制对象,但是要复制的话就必须要实现一个标志接口Cloneable接口,否则的话会抛CloneNotSupportedException异常;简单形式的原始模型客户端角色:提出创建对象的请求。 抽象原型角色(Cloneable的子接口),具原创 2017-11-06 16:49:53 · 342 阅读 · 0 评论 -
《java与模式》-11 适配器模式
适配器模式适配器模式把一个类的接口变成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作; 适配器的角色有目标角色(Target)、源角色(Adaptee)、适配器角色(Adapter);类的适配效果:适配器是源的子类,可以在适配器中置换掉源的方法;只引用了一个适配器类因此只有一个路线到达目标类,问题得到简化;使用一个具体类把源适配到目标中来如果源以及源的原创 2017-11-14 21:35:18 · 127 阅读 · 0 评论 -
《java与模式》-6 代码中应该遵守的原则
里氏替换原则凡基类适用的地方,子类一定适用。子类可以直接替换基类。依赖倒转原则要依赖于抽象不要依赖于具体。 要针对接口编程依赖倒转虽然强大,却不容易实现。而且维护这样的系统需要很好的面向对象的设计知识;并且并不是所有类都会发生变化,一些相当稳定的类,就不必有抽象类型。联合适用java接口和java抽象类java接口用来声明类型定义规则,抽象类做默认实现,具体实现类就直接继承抽象类,这样就直接原创 2017-10-26 21:38:41 · 149 阅读 · 0 评论 -
《java与模式》-9 建造模式
建造模式可以将一个产品的内部表象与产品的生成过程分割开,从而使一个生成过程创建具有不同内部表象的对象;角色抽象建(builder)造者,具体建(concrete builder)造者,导演者(director)角色,产品(product)角色; 客户端与导演者打交道,导演者调用具体建造者;每有一个产品类就有一个具体的建造者类; 导演需要演员(具体建造者),具体建造者对应了某一个具体产品; 具体原创 2017-11-03 18:06:14 · 201 阅读 · 0 评论 -
《java与模式》-8 单例模式 singleton
单例模式确保一个类只有一个实例,而且自行实例化,并自行向整个系统提供这个实例; 资源管理一般都是单例的,1.资源管理器必须只有一个实例。2.它必须自行初始化。3.允许整个系统访问自己; 例子:回收站,整个系统只能有一个回收站,整个系统使用这个唯一的实例,回收站自行提供这个实例; 1.懒汉式没有必要加双重检查; 2。除非有单一实例的需要否则不要使用单例; 3.多个JVM系统的分散式系统要避免原创 2017-11-02 10:22:07 · 199 阅读 · 0 评论 -
《java与模式》-7 工厂模式
简单工厂模式:静态工厂方法模式; 工厂方法模式:多态性工厂模式、虚拟构造子模式; 抽象工厂模式:工具箱模式;简单工厂模式有工厂角色,抽象产品角色,具体产品角色。 工厂类根据传入的参量,决定具体创建哪一类的实例。 当多抽象类、具体类的时候,一律使用同一个工厂。 好处:产品的等级结构不会传递到工厂类中; 缺点:增加产品必须修改工厂类; 一个工厂类可以有多个工厂方法,分别创建不同的产品对象,原创 2017-10-31 22:57:00 · 142 阅读 · 0 评论 -
《java与模式》-5 抽象类
抽象类同时又抽象方法和具体方法 抽象类与其子类之间的关系实际是模板方法模式的应用原创 2017-10-24 20:00:00 · 252 阅读 · 0 评论 -
《java与模式》-4 java接口
接口是实现构建可插入性的关键关联的可插入性 A对象需要完成一个任务,需要知道B对象(属性),A对B就是关联。如果关联不是对类,而是对接口,那么任何一个实现了这个接口的对象都可以,这样我们只需要关心接口,不需要关心实现了。调用的可插入性 A对象需要调用B对象的方法,这个调用不一定非得要具体的类而是可以是一个接口,任何实现了这个接口的类都可以被当前对象调用。类型 应当使用接口或抽象类将软件原创 2017-10-24 16:21:32 · 173 阅读 · 0 评论 -
《java与模式》-3 设计原则
开闭原则1.一个软件实体应该对扩展开放,对修改关闭设计的时候应当使这个模块可以在不被修改的前提下被扩展。对面向对象来说是,不允许修改系统的抽象层,而允许扩展的是系统的实现层。就是不修改规则只修改实现2.解决问题的关键在与抽象化需要给系统定义一个一劳永逸,不再修改的抽象设计允许无穷无尽的行为在实现层被实现3.对可变性的封装原则找一个系统的可变因素将其封装起来 一种可变性不应散落在代码原创 2017-10-23 23:14:44 · 148 阅读 · 0 评论 -
《java与模式》-3 观察者模式
观察者模式抽象主题:Observable抽象观察者:Observer具体主题角色:继承Observa具体观察者角色:实现Observer原创 2017-10-17 16:25:01 · 160 阅读 · 0 评论 -
《java与模式》-2 软件的可维护性和可复用性
导致软件可维护性低的真正原因有四个:过于僵硬,过于脆弱,复用率低,粘稠度高。过于僵硬:很难在一个软件系统里加入一个新的性能,哪怕是很小的都很难。过于脆弱:对一个地方的修改,往往会导致看上去没什么关系的另一个地方发生故障。复用率低:所谓复用,就是指一个软件的组成部分,可以在同一个项目的不同地方甚至令一个项目中重复使用。如果程序员在写代码的时候总是发现现有的代码依赖于一大堆其他的东西,而重新写原创 2017-10-20 16:54:14 · 393 阅读 · 0 评论 -
《java与模式》-16 门面模式
门面模式原创 2018-04-12 06:56:40 · 115 阅读 · 0 评论