智乐兔

架构设计

  • 系统架构设计中的开-闭原则(OCP)

    系统架构设计中的开-闭原则(OCP)

    经典力学的基石是牛顿三大定律。面向对象的设计(Object Oriented Design 或 OOD)的第一块基石,便是所谓的“开-闭”原则(Open-Closed Principle,缩写为OCP)。 开-闭原则讲的是:一个软件实体应当对扩展开放,对修改关闭。 Software entities should be open for extension,but closed for modification. 在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。应当可以在不必修改源代码的情况下改变这个模块的行为。 软件系统面临新得需求时,系统的设计必须是稳定的。满足开-闭原则 ...

    查看全文

  • 建造者模式(设计模式)

    建造者模式(设计模式)

    1.概念 将一个复杂的对象的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。 [构建与表示分离,同构建不同表示]     与抽象工厂的区别:在建造者模式里,有个指导者,由指导者来管理建造者,用户是与指导者联系的,指导者联系建造者最后得到产品。即建造模式可以强制实行一种分步骤进行的建造过程。 建造模式是将复杂的内部创建封装在内部,对于外部调用的人来说,只需要传入建造者和建造工具,对于内部是如何建造成成品的,调用者无需关心。   举个简单的例子,如汽车,有很多部件,车轮,方向盘,发动机还有各种小零件等等,部件很多,但远不止这些,如何将这些部件装配 ...

    查看全文

  • 设计模式(结构类)-桥梁模式

    设计模式(结构类)-桥梁模式

    桥梁模式(Bridge Patter)也叫做桥接模式,是一个比较简单的模式。 定义: 将抽象和实现解耦,使得两者可以独立地变化。 通用类图:   ● Abstraction——抽象化角色 它主要的职责是定义出该角色的行为,同时保存一个对实现化角色的引用,该角色一般是抽象类。 ● Implementro——实现化角色 它是接口或者抽象类,定义角色必须的行为和属性。 ● RefinedAbstraction——修正抽象化角色 它引用实现化角色对抽象化角色进行修正。 ● ConcreteImplementor——具体实现化角色 它实现接口 ...

    查看全文

  • 软件的可维护性与可复用性

    软件的可维护性与可复用性

    可维护性和可复用性是两个独立的目标,对面向对象的软件系统设计来说,在支持可维护性(Maintainability)的同时,提高系统的可复用性(Reuseability)是一个核心的问题。 软件系统的可维护性 维护中的软件是一个不断再生的软件,就像一个“不断带来新礼物的礼物”。 好的软件设计,允许新的设计要求以较为容易和平稳的方式加入到已有的系统中去,从而使这个系统能不断焕发青春。 一个可维护性较好的系统,允许维护工作能够以容易、准确、安全和经济的形式进行。 典型的软件生命周期 系统设计师拿到系统的设计要求,开始进行系统设计。 从存在于设计者们的头脑中,到存在于设计图纸上,然后变成一个原型系统, ...

    查看全文

  • 面向对象的设计原则

    面向对象的设计原则

    面向对象设计要解决的核心问题是:同时提高一个软件系统的可维护性(Maintainability)和可复用性(Reuseability)是面向对象的设计要解决的核心问题。 设计模式的应用,可以加深对面向对象设计理念的理解,帮助设计者改善自己的系统设计。但是,设计模式并不能提供具有普遍意义的设计指导原则。在诸多孤立的设计模式背后应当还有一些更为深层的、更具有普遍性的、共同的思想原则。 如开-闭原则,这样的面向对象的设计原则就是这些设计模式中不断显现出来的共同思想原则,它们是隐藏在设计模式背后的、比设计模式本身更加基本和单纯的设计思想。 ...

    查看全文

  • UML及建模的工具

    UML及建模的工具

    一个好的OO设计工具可以双向工作,既可以从代码生成UML图,也可以从UML图生成代码;根据时序图自动给出合作交互图,或者根据合作交互图自动给出序列交互视图等。这样的工具包括如下内容: Rational Rose Together Microsoft Visio Visual UML Model Bridge MicroGold WithClass QuickUML Visio在运行时的情形如下图所示。   Rational Rose工作界面: Together把Java IDE和OO设计建模工具合二为一,用户可以同时看到UML图和Java源代码,修改UML图会使得源代码得到 ...

    查看全文

  • UML语言-状态图

    UML语言-状态图

    状态图(State Diagram)又称作状态转换图(State Transition Diagram)。状态图的基本想法是定义一个具有有限个内部状态的机器,因此状态图又称作有限状态机。对象被外界的事件激发,从而从一个状态转换到另一个状态。 考虑汽水装瓶机上的汽水瓶子的例子。对象是瓶子,装瓶机器是外部环境。首先,一个空瓶子在传送带上被送到装瓶机龙头下面,此时瓶子是空的。如图所示: 图中的黑点表示起始状态,方框表示瓶子的状态,可以看出瓶子没满,处在未满状态。从起始状态到未满状态、有箭头的连线表示状态的过渡。过渡连线的标签通常分为两部分由一个斜线分开,斜线的第一部分是引起过渡的事件,第二部分是 ...

    查看全文

  • uml图-时序图简介

    uml图-时序图简介

    时序图又叫序列图、活动序列图。作为交互图的一种,序列交互图按照时间顺序从上往下显示每个使用案例。下图所示的例子显示了一个银行客户在ATM机器上查阅账户信息的时序图。   在一个时序图中,垂直的虚线叫做生命线,它代表一个对象存在的时间。每一个箭头都是一个调用,这个箭头从调用者对象连接到接受者对象的生命线上的激活条(Activation Bar)上。每一个激活条代表调用所持续的时间。 在上面的时序图中,John想读卡机发出读卡调用,然后读卡机向自身发出同样的调用,然后将自身初始化。从这以后,读卡机向ATM屏幕发出提示输入密码的调用,而后者则向John发出调用,要求输入密码。 当Joh ...

    查看全文

  • 模式的哲学与道家思想的渊源

    模式的哲学与道家思想的渊源

    《道德经》说:“道生一,一生二,二生三,三生万物。万物负阴而抱阳,冲气以为和。”这就是说,万物是由道而生,第一个实体就是内部蕴含有阴、阳两级的一个整体。这就是说不存在单独存在的阴或阳。 无独有偶,Alexander在《建筑的永恒之道》一书的“空间的分化”中写道:“在自然界中,一个实体总是作为一个整体出生、发展的。”设计的过程,就像一个受精卵的发育过程,是一个逐步分化的过程,是从整体到部分的过程,而非从部分到整体的过程。 模式哲学类似道家哲学,是形而上学,形而上学始于“形”之上。模式包含“形”和“而上之学”。 “气乘风则散,界水而止”,风水描述是只存在于建筑物及其环境所形成的整体之中,而不存在 ...

    查看全文

  • java实现原生图片格式转换和自动图片压缩实现方案

    java实现原生图片格式转换和自动图片压缩实现方案

    有时候服务器上存储的图片占用空间较大,需要压缩上传的图片,这个巨大的工作量肯定要交给程序自动完成,特别是对那些采集程序、网络爬虫之类你懂得,Jdk提供了图片处理的原生支持,下面给出一个实例,用于udast智能机器人的爬虫程序。 package com.tomrrow.collect.util; import java.awt.image.BufferedImage;import java.io.File; import javax.imageio.ImageIO; /*** 非常牛逼的一个jdk原生图片格式转换实现,png2jpg* @author xujy**/public ...

    查看全文

  • 抽象工厂设计模式

    抽象工厂设计模式

    场景问题 举个生活中常见的例子——组装电脑,我们在组装电脑的时候,通常需要选择一系列的配件,比如CPU、硬盘、内存、主板、电源、机箱等。为讨论使用简单点,只考虑选择CPU和主板的问题。 事实上,在选择CPU的时候,面临一系列的问题,比如品牌、型号、针脚数目、主频等问题,只有把这些问题都确定下来,才能确定具体的CPU。 同样,在选择主板的时候,也有一系列问题,比如品牌、芯片组、集成芯片、总线频率等问题,也只有这些都确定了,才能确定具体的主板。 选择不同的CPU和主板,是每个客户在组装电脑的时候,向装机公司提出的要求,也就是我们每个人自己拟定的装机方案。 在最终确定这个装机方案之前,还需要整体考虑 ...

    查看全文

  • java观察者模式

    java观察者模式

    在阎宏博士的《JAVA与模式》一书中开头是这样描述观察者(Observer)模式的: 观察者模式是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。   观察者模式的结构 一个软件系统里面包含了各种对象,就像一片欣欣向荣的森林充满了各种生物一样。在一片森林中,各种生物彼此依赖和约 ...

    查看全文

在线客服
在线客服 X

售前: 点击这里给我发消息
售后: 点击这里给我发消息

智乐兔官微