设计模式
码夜
这个作者很懒,什么都没留下…
展开
-
设计模式的7大原则,最近正研究设计模式呢
1.开闭原则 实现开闭原则的核心是抽象,将变化部分和不变化部分区分开来,这有利于功能的扩展 一句话概括就是,对扩展是开发的对修改是关闭的. 在实际的编码当中虽然不能做到百分之百按照开闭原则来,但是朝着这个目标去编码。 个人认为开闭原则从软件的系统的角度来说:软件系统的个个功能组件,如菜单、模块、类、以及功能等等,应该在不修改原有代码的基础上增加新的功能.同时对于经常原创 2015-01-28 19:48:09 · 492 阅读 · 0 评论 -
门面模式(Facade)
门面模式,又称外观模式.其定义是:"外部与一个子系统的通信必须通过一个统一的门面对象进行"我们可以把它理解为一个只有一个单例的门面类当然,一个由多个子系统组成的大系统,可以有多个门面类基于对定义的理解,我们认为门面模式的主要目的是为了清理客户使用接口,对实现的接口的精简.虽然不符合接口隔离原则,但是如果合理的使用此模式,对软件系统的设计还是蛮有好处.1.结构(如下图)原创 2015-03-02 11:53:36 · 937 阅读 · 0 评论 -
Bridge桥接模式
桥接模式是指:将抽象部分与它的实现分离,使他们都可以独立地变化.将抽象部分与其实现部分分开,使之任意增减,而无须受其他约束实例1Abstraction:定义抽象类的接口,维护一个指向Implementor类型对象的指针,将Client的请求转发给他的Implementor.RefinedAbsreaction扩充由Abstraction定义接口Implementor:定义实原创 2015-02-10 09:57:28 · 524 阅读 · 0 评论 -
Decorator装饰模式
装饰模式别名也叫包装器,国外设计模式大师组合GOF把装饰模式定义为 “动态地给对象添加一些职责,就是其功能而言”。装饰模式比生成子类更灵活动态地给对象添加一些职责,可以理解问保持原有功能不变进行扩展看下图Concreteconmonent:定义一个对象,可以给这个对象动态地添加职责Decorator:维持一个指向Compnonent对象指针,并定义一个与Component接口一原创 2015-02-12 11:14:37 · 702 阅读 · 0 评论 -
Composite组合模式
组合模式又称合成模式,国外设计模式大师GOF把合成模式定义为:“将对象组合成树形结构以表示” 部分-整体的 层次结构“将对象组合成树形结构以表示” 部分-整体的 层次结构可以理解为“通过树形结构,同等显示多个独立的对象以及他们复合而成的合成对象”1.结构Component:为组合中的对象声明接口。在适当的情况下,嘻嘻所有类共有接口的缺省行为,声明一个接口用户访问和管理Com原创 2015-02-11 13:46:36 · 824 阅读 · 0 评论 -
适配器模式
适配器模式是指"将一个类的接口转换成客户希望的另一个接口" Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作.其别名为包装器.适配器模式既可以作为类结构型模式,也可以作为对象结构型模式适配器模式无非就是“将两种没有联系的功能代码,通过中间代码相结合”1原创 2015-02-09 11:31:37 · 632 阅读 · 0 评论 -
设计模式之结构型模式
写代码的时候我发现自己缺少了,面向对象思维与设计思维.所以我选择了学习设计模式出了问题,我发现自己定位问题的手段不够,连在服务器怎么找日志文件都不知道,深感羞愧,我选择了学习服务器运维面对需求的不断变更,数据库设计从根本上来说,扛不住了.设计出来的表非常搓,自己都感觉不合理. 我选择学习了数据优化学习是一个漫长的积累,得慢慢来啊...设计模式在软件工程方面是项目经理,系统设计师原创 2015-02-09 11:13:39 · 417 阅读 · 0 评论 -
原型模式
原型模式使之 “用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。”“用原型实例指定创建对象的种类” 可理解为 “新建一个对象”,运用一个原型指定对象种类“通过拷贝这些原型创建新的对象” 可理解为 “通过现有对象的复制实现新对象的创建”举一个很简单的例子.我有一次在学校,舍友告诉我宿舍的钥匙丢了,于是我马上去小卖部找师傅配钥匙,只见师傅把我的钥匙放在机器上,一按按钮一原创 2015-02-07 18:24:59 · 620 阅读 · 0 评论 -
建造者模式
定义:建造者模式是指将一个复杂对象的构建与表示分离,使得创建过程可以创建不同的表示 “复杂对象的构建过程可以创建不同的表示”,可以理解成:一部汽车不论使用任何品种的品牌部件只要能正常的安装即可“使得同样的构建过程可以创建不同的表示” 可以理解成同样的部件可以采取多种安装方式如下图所示1.builder 是抽象的建造者角色 为创建一个Pr原创 2015-02-06 13:06:10 · 537 阅读 · 0 评论 -
单例模式
单例模式是指确保一个类只有一个实例,且自行实例化,并向整个系统,提供这个实例,供全局访问.单例模式也为分饿汉和懒汉模式两者区别如下相同点:在类创建的时候就一句创建好了一个静态对象提供系统使用,并且以后都不在改变不同点:饿汉模式线程是安全的,懒汉模式,在创建实例对象时不加上synchronzied会导致对象的访问不是线程安全的单例优势1.实例数原创 2015-02-06 10:01:35 · 598 阅读 · 0 评论 -
工厂方法模式
工厂方法模式,又叫虚拟构造模式或者多态工厂模式.它的正式定义为:工厂方法模式定义了一个创建对象的接口,但由子类觉得实例化的类是哪一个.工厂方法让类把实例化推迟到子类举例:好比我以前在鞋厂工作的时候,我们生产部,由两条生产线组成,主要分为生产线A,生产线B.A线负责生产男鞋,B线生产女鞋。鞋子就是一个抽象的产品组,具体的产品为男鞋,女鞋定义:工厂方法模式定义了一个创建对象的接口,原创 2015-02-03 13:23:08 · 546 阅读 · 0 评论 -
抽象工厂模式
抽象工厂模式是指,“提供一个接口,用于创建相关或者依赖对象的家族,而不需要明确指定具体类.”此类模式在实际项目中开发,由于需求的变化,要创建多个对象,此时,如何防止过多的创建方法,以避免客户程序和服务程序的紧耦合,这就需要运用到抽象工厂模式进行解决,具体解决方式,可以通过创建接口或者抽象类,由具体的类去实现或者继承。 举个例子一个计算机厂生产两种产品例子去分析,比如一个计算机厂由原创 2015-02-04 13:23:07 · 613 阅读 · 0 评论 -
享元模式(flyweight)
享元模式是指"运用共享技术有效地支持大量细粒度的对象"所有"运用共享技术有效地支持大量细粒度的对象"我们可以理解为,当细粒度对象的数量过多时运行的代价相当高,此时运用共享技术可大大降低运行的代价1.结构1.1单纯享元模式结构此模式,全部享元对象均可共享,如下图(1)抽象享元角色(Flyweight):为具体享元角色规定了必须实现的方法,而外藴状态就是以参数的形式原创 2015-03-03 17:56:50 · 844 阅读 · 0 评论