设计模式
palepale
想热爱技术
展开
-
设计模式相关博客目录,暂时完结了!!
设计模式相关博客目录策略模式,封装变化,面向接口编程观察者模式,松耦合装饰者模式,面向扩展开放修改关闭工厂模式单件模式命令模式适配器模式与外观模式,最少知识原则模板方法模式,好莱坞原则迭代器与组合模式,单一责任原则状态模式代理模式...原创 2020-03-03 17:54:34 · 91 阅读 · 0 评论 -
初探设计模式——代理模式(远程代理,虚拟代理,动态代理)
代理模式用来控制和访问管理,方式有很多。代理以通过Internet对他们的代理对象搬运的整个方法调用而出名,也可以代替某些懒惰的对象做一些事情。远程代理远程方法调用流程客户对象调用客户辅助对象(Proxy)的方法客户辅助对象打包调用信息,(lookup service)再然后通过网络将它运给服务辅助对象服务辅助对象(Skel)接收请求(透过Socket连接)解包,调用服务对象的相应方法...原创 2020-03-03 17:39:14 · 450 阅读 · 0 评论 -
初探设计模式——状态模式
状态模式:允许对象在内部状态改变时改变它的行为,对象看起来好像修改了它的类。State接口(抽象类)定义了一个生成所有具体状态的共同接口,那么实现接口的状态类可以互相转换。Context类拥有一些状态,通过request()方法请求某状态对象的行为ConcreteStateA是实现接口的一个具体状态类,提供本状态特有的实现处理来自Context的请求,使得Context改变状态时行为也发生改...原创 2020-03-02 22:52:32 · 115 阅读 · 0 评论 -
初探设计模式——迭代器与组合模式 ,手写使用Iterator接口,JDK中的一些迭代器
,原创 2020-03-01 23:58:30 · 132 阅读 · 0 评论 -
初探设计模式——模板方法模式
如果一些类有很多重复性的代码,我们可以应用此模式把相同方法抽离出来,把相似的一些方法抽象出来。算法结构中可以通过钩子方法让子类实现算法中可选的部分,也可让子类有机会对模板方法中即将发生的行为作出反应。public abstract class BevePage{ void final prepare{ //保护prepare这个算法 brew(); boilWater(); i...原创 2020-02-27 23:36:49 · 123 阅读 · 0 评论 -
初探设计模式——适配器模式与外观模式
现实世界中有许多适配器的例子,比如说充电器接口和手机不匹配时,给数据线加个适配器(转换接口)就可以使用了。OO适配器也是如此,将一个接口转换成另一个接口以符合客户的需求。适配器模式:将一个类的接口转换成客户期望的一个接口。适配器让原本接口不兼容的类合作无间。假设客户实现了接口A,如果想调用接口B就要修改客户的代码,通过适配器模式提供一个适配器类,将改变封装在这个类中。对象适配器publ...原创 2020-02-26 21:24:19 · 209 阅读 · 0 评论 -
初探设计模式——命令模式
命令模式:将请求封装成对象,以便使用不同的请求、队列或者日志来参数化其他对象。支持撤销可以分成四部分:命令接口及命令对象Command、客户Client、调用者Invoker、接收者Receiver实现命令接口public interface Command{ public void execute(); //用来绑定接收者和一组动作}建立命令对象,实现电灯接收者的打开命令publ...原创 2020-02-25 17:20:01 · 115 阅读 · 0 评论 -
初探设计模式——单件模式 与线程池、缓存、注册表、日志
**单件模式:确保一个类只有一个实例,并提供一个全局访问点 **单例模式需要私有的构造器、一个静态方法、一个静态变量,可以避免其他类再自行产生实例,ststic使这个实例可以在全局内访问。多线程抢占单例对象数据不同步问题1.把getInstance()变成同步(synchronized)方法public class Singleton{ private static Singleton ...原创 2020-02-24 23:41:27 · 480 阅读 · 0 评论 -
初探设计模式——工厂模式
Pizza是超类型,CheesePizza、ClamPizza是其子类。public abstract class Pizza{ void prepare(){} void box(){}}得到一个具体对象:Pizza cheesePizza=new CheesePizza();得到多个具体对象:Pizza pizza; if("cheese") pizza=new Ch...原创 2020-02-24 21:04:05 · 139 阅读 · 0 评论 -
初探设计模式——装饰者模式 ,在I/O中的身影
初次学习,如有谬论请大佬不吝斧正。组合的威力是强大的,可以在运行时动态扩展而不改变原来的功能。第四个设计原则:类应该对扩展开放,对修改关闭应用这个原则通常会引入新的抽象层次,过多的引入会使代码复杂度增加。装饰者模式:动态的将责任附加到对象身上首先引入一个抽象层次,针对抽象类编程public abstract class Beverage{ String description =...原创 2020-02-21 22:58:44 · 102 阅读 · 0 评论 -
初探设计模式——观察者模式
我将初次学习设计模式的一些思维活动记录如下,如有谬论请不吝斧正。观察者模式定义对象之间的一对多的依赖关系,当一个对象改变状态,它的依赖者都会收到通知并自动更新出版社是主题对象,读者们是依赖者对象。一旦出版者改变状态有了新刊,订阅者们就会收到通知并更新自己的状态。这就产生了依赖关系。突然一天订阅者A要退刊,他就不再是出版社的依赖者,自然不会再接受出版社的通知。实现:包含Subject和O...原创 2020-02-20 16:43:31 · 135 阅读 · 0 评论 -
初探设计模式——策略模式
我将初次学习设计模式的一些思维活动记录如下,如有谬论请不吝斧正。当我们有一个超类和它的一些子类,子类都含有的行为可以在超类中直接给出实现 不同的行为可以在超类中声明抽象方法 在子类中给出实现。但同时存在一些问题 。在后期维护需要添加新的子类但不含有这个抽象行为时该怎么处理?新子类有超类中具体实现的方法,但实现不一样该怎么办,难道要时刻关注是否进行方法覆盖?第一个设计原则:把变化的部分取...原创 2020-02-18 23:47:14 · 194 阅读 · 0 评论