系统设计@设计模式
schy_hqh
这个作者很懒,什么都没留下…
展开
-
HeadFirst(一)Strategy 策略模式
软件开发的一个不变的真理---CHANGE 拥抱变化,为变化而生! 设计原则找出可能发生变化的地方,把它们独立出来单独处理,不要和那些变化的代码混在一起!把会变化的部分抽取并进行“封装”,以后可以轻松的改动或扩展此部分,而不影响其它不需要变化的部分! 设计原则针对接口编程,而不是针对实现编程!针对接口编程,真正的意思是“针对超类型编程”...原创 2013-12-09 23:07:21 · 115 阅读 · 0 评论 -
HeadFirst(九)TemplateMethod 模板方法设计模式
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。 每一个子类都必须为模板方法中抽象的步骤提供完整的实现 抽象父类中可以使用钩子(hook),让子类决定是否需要执行某些步骤 茶与咖啡 抽象父类package templa...原创 2013-12-21 15:49:37 · 66 阅读 · 0 评论 -
HeadFirst(八)Facade 外观/门面设计模式
外观/门面模式-Facade提供一个统一的接口,用来访问子系统中的一群接口。外观定义了一个高层的接口,让子系统更容易被使用。 简化接口,将客户从一个复杂的子系统中解耦外观模式,将子系统组合进外观中,然后将工作委托给子系统执行可以为一个子系统实现一个以上的外观 设计原则Least Knowledge不要让太多的类耦合在一起,避免修...原创 2013-12-15 23:40:10 · 114 阅读 · 0 评论 -
HeadFirst(七)Adapter 适配器设计模式
适配器模式-Adapter将一个不兼容接口的对象包装起来,变成兼容的对象 外观/门面模式-Facade将一群对象包装起来,以简化接口当需要简化并统一一个很大的接口或者一群复杂的接口时,使用外观模式外观将客户从一个复杂的子系统中解耦实现一个外观,需要将子系统组合进外观中,然后将工作委托给子系统执行可以为一个子系统实现一个以上的外观 ...原创 2013-12-15 22:56:09 · 95 阅读 · 0 评论 -
HeadFirst(六)Command 命令设计模式
命令模式将“请求”封装成对象,以便使用不同的请求,队列或日志来参数化其它对象。命令模式也可以支持撤销的操作。 使用命令模式来实现“队列、日志、支持撤销操作” =========================================================================== 示例:遥控器功能的实现---开/关/撤销...原创 2013-12-15 18:03:15 · 157 阅读 · 0 评论 -
HeadFirst(五)Singleton 单件设计模式
单件设计模式:确保一个类只有一个实例,并提供一个全局的访问点1个静态变量1个私有的构造函数1个静态方法 用来管理共享的资源,如:线程池,数据库连接等。 有一些对象我们只需要一个,如:线程池threadpool,缓存cache,数据库连接connection,注册表registry等 我们必须认定所有的程序都是多线程的多线程下对共享资源...原创 2013-12-15 00:38:23 · 99 阅读 · 0 评论 -
HeadFirst(四)Factory 工厂设计模式
当有一堆对象等着被实例化,究竟实现哪个类,需要在运行时由一些条件来决定! 如果代码是针对接口编写的,那么通过多态的特性,它就能与任何新的实现类进行绑定,从而实现扩展! 找出会变化的地方,把它们从不变的部分分离出来,单独进行设计! 工厂方法研究:如何将实例化具体类的代码从应用中抽离,或者封装起来,使它们不会干扰其它部分。 每当需求发生变化或者有新的需求时...原创 2013-12-14 19:59:05 · 126 阅读 · 0 评论 -
HeadFirst(三)Decorator 装饰设计模式
设计原则类应该对扩展开发,对修改关闭不修改现有代码的情况下,可以添加新的行为,这样的设计具有弹性,可以应对变化,提供新的功能。 装饰者模式完全遵循开放-关闭的原则遵循开放-关闭原则,通常会引入新的抽象层次,增加代码的复杂度应该把注意力集中在主要的容易发生变化的地方,然后应用开放-关闭原则 装饰:最低层的功能不变,对外提供了更灵活更方便的方法委托:...原创 2013-12-12 22:48:37 · 91 阅读 · 0 评论 -
HeadFirst(二)Observer 观察者模式
出版者+订阅者=观察者模式出版者:主题 Subject订阅者:观察者 Observer 观察者模式在对象之间定义一对多的依赖关系,当一个对象(主题)改变状态时,它的所有依赖者(观察者)都将收到通知,并自动更新。 主题与观察者之间通过组合关系完成相互的调用:所有观察者Observer持有相同的一个主题Subject,观察者通过该接口向主题进行注册;主题Su...原创 2013-12-10 23:46:14 · 99 阅读 · 0 评论 -
单例设计模式
设计模式即解决某类问题的最优方案,强调解决问题的思想。某种问题有各种解决的办法,从中选取最好的一种办法,最为以后处理问题的统一处理方式,该办法就成为一种模式! 单例设计模式解决的问题:确保一个类在内存中只有唯一的对象;步骤:构造方法私有化,保证外界无法创建对象本类创建自己的对象,并对外提供获取该唯一对象的“接口”外界通过这个接口获取返回的对象的引用...原创 2013-10-05 11:55:57 · 65 阅读 · 0 评论