摘要: 享元模式使用场景: 内存属于稀缺资源,不要随便浪费。如果有很多个完全相同或相似的对象,我们可以用通过享元模式,节省内存。 享元模式的核心: 享元模式以共享的方式高效的支持大量细粒度对象的重用。 享元对象能做到共享的关键是区分了内部状态和外部状态。内部状态:可以共享,不会随环境变化而改变;外部状态:不 阅读全文
posted @ 2018-01-10 11:02 jianhuazhao 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 首先介绍一下迪米特法则(最少知识原则): 一个软件实体应当尽可能少的与其他实体发送相互作用。 外观模式就是迪米特法则的体现,它为系统提供统一的入口。封装子系统的复杂性,便于客户端调用。 用代码来说明: 如果有人需要开店,那么他就需要到工商局,税务局,银行,质监局办理各种手续,创建上面的各种类: 如果 阅读全文
posted @ 2018-01-10 10:32 jianhuazhao 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 装饰模式(decorator)也叫包装器模式(Wrapper)。它可用降低系统的耦合度,可用动态的增减或者删除对象的职责,并使得需要装饰的具体构建类和具体装饰类可以独立变化,以便增加新的具体构建类和具体装饰类。 装饰模式的职责: 动态的为一个对象增加新的功能; 装饰模式是一种用于代替继承的技术,无需 阅读全文
posted @ 2018-01-09 23:00 jianhuazhao 阅读(479) 评论(0) 推荐(0) 编辑
摘要: 组合模式的使用场景: 把部分和整体的关系用树型结构来表示,从而使客户端可以使用统一的方式处理部分对象和整体对象。 组合模式的核心: 抽象构件(Component)角色:定义了叶子和容器的共同点; 叶子(Leaf)构件角色:无子节点; 容器(Composite)构件角色:有容器特征,可以包含子节点; 阅读全文
posted @ 2018-01-09 16:03 jianhuazhao 阅读(246) 评论(0) 推荐(0) 编辑
摘要: 场景: 商场系统中常见的商品分类,以电脑为,如何良好的处理商品分类销售的问题 ? 我们可以使用多重继承实现上图的关系 问题: 扩展性问题(类个数膨胀问题:) 如果要增加一个新的电脑类型:智能手机,则要增加各个品牌下面的类 如果要增加一个新的品牌,也要增加各种电脑类型的类 违反单一职责原则: 一个类: 阅读全文
posted @ 2018-01-09 11:30 jianhuazhao 阅读(219) 评论(0) 推荐(0) 编辑
摘要: 介绍一下jdk自带动态代理。 java.lang.reflect.Proxy和java.lang.reflect.InvocationHandler 使用动态代理,还可以完成对实现了某些接口的类的特定方法进行改造。 下面用代码来说明: 1.首先还是创建Star接口和真实明星的对象: 2.创建Hand 阅读全文
posted @ 2018-01-03 16:31 jianhuazhao 阅读(285) 评论(0) 推荐(0) 编辑
摘要: 代理模式的作用 通过代理,控制某个对象的访问,可以详细的控制访问某个(某类)对象的方法,在调用这个方法前做前置处理,调用这个方法后做后置处理,即AOP的微观实现。代理模式也是AOP编程的核心实现机制。 代理模式的应用场景 抽象角色:定义代理角色和真实角色的公共对外方法; 真实角色:实现抽象角色,定义 阅读全文
posted @ 2018-01-03 16:09 jianhuazhao 阅读(363) 评论(0) 推荐(0) 编辑
摘要: 什么是适配器模式? 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 适配器模式中的角色 目标接口(Traget):客户所期待的接口。目标可以是具体的或抽象的类,也可以是接口。 需要适配的类(Adaptee):需要适配的类或者 阅读全文
posted @ 2018-01-02 17:10 jianhuazhao 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 场景: 思考一下:克隆技术是怎么样的过程?克隆羊多莉大家还记得吗? javaScript语言中的,继承是怎么实现的? 那里面也有prototype,大家还记得吗? 原型模式: 如果通过new去产生一个对象需要非常繁琐的数据准备和访问权限,则可以使用原型模式; 其实原型模式就是java中的克隆技术,以 阅读全文
posted @ 2017-12-27 16:50 jianhuazhao 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 场景: 我们需要建造一个复杂的产品。比如:神舟飞船、iphone。这些复杂的产品创建。有这样一个问题需要处理:装配这些子组件是不是有个步骤问题? 在实际开发中,什么所需要的对象构建时,也非常复杂,有很多步骤需要处理时。 建造模式的本质: 分离了对象子组件的单独构造(由Builder来负责)和装配(由 阅读全文
posted @ 2017-12-27 14:36 jianhuazhao 阅读(186) 评论(0) 推荐(0) 编辑