上一页 1 2 3 4 5 6 7 8 9 ··· 24 下一页
摘要: 一、适配器模式的定义 适配器模式(Adapter)的定义如下:将一个类的接口转换成客户希望的另外一个接口,使得原本由于接口不兼容而不能一起工作的那些类能一起工作。 适配器模式分为类结构型模式和对象结构型模式两种:在类适配器模式中,适配器与适配者之间是继承(或实现)关系;在对象适配器模式中,适配器与适 阅读全文
posted @ 2020-03-30 19:51 kosamino 阅读(4073) 评论(0) 推荐(0) 编辑
摘要: 一、代理模式的定义 代理模式的定义:由于某些原因需要给某对象提供一个代理以控制对该对象的访问。这时,访问对象不适合或者不能直接引用目标对象,代理对象作为访问对象和目标对象之间的中介,代理模式也叫做委托模式。 二、为什么使用代理模式 中介隔离作用:在某些情况下,一个客户类不想或者不能直接引用一个委托对 阅读全文
posted @ 2020-03-30 04:51 kosamino 阅读(1843) 评论(0) 推荐(0) 编辑
摘要: 一、原型模式的定义与特点 原型(Prototype)模式的定义如下:用一个已经创建的实例作为原型,通过复制该原型对象来创建一个和原型相同或相似的新对象。它属于创建型设计模式,用于创建重复的对象,同时又能保证性能(用这种方式创建对象非常高效)。 这种模式是实现了一个原型接口,该接口用于创建当前对象的克 阅读全文
posted @ 2020-03-30 02:05 kosamino 阅读(2478) 评论(0) 推荐(0) 编辑
摘要: 一、建造者模式的定义与特点 建造者(Builder)模式的定义:指将一个复杂对象的构造与它的表示分离,使同样的构建过程可以创建不同的表示,这样的设计模式被称为建造者模式。建造者模式属于创建型设计模式,它是将一个复杂的对象分解为多个简单的对象,使用多个简单的对象一步一步构建成一个复杂的对象。它将变与不 阅读全文
posted @ 2020-03-30 00:02 kosamino 阅读(969) 评论(0) 推荐(0) 编辑
摘要: 工厂模式划分来说总共有三类:简单工厂模式、工厂方法模式和抽象工厂模式。其中简单工厂模式不输入23种设计模式之一,但他们又都属于创建型模式。我们依次讲解这三种工厂模式。 一、简单工厂 1、什么是简单工厂模式? 首先来说简单工厂,简单工厂模式,又叫做静态工厂模式(Static Factory Metho 阅读全文
posted @ 2020-03-29 22:25 kosamino 阅读(7162) 评论(0) 推荐(1) 编辑
摘要: 一、什么是单例模式 单例模式的定义就是确保某一个类只有一个实例,并且提供一个全局访问点。属于设计模式三大类中的创建型模式。单例模式具有典型的三个特点 单例类只有一个实例对象; 该单例对象必须由单例类自行创建; 单例类对外提供一个访问该单例的全局访问点; 类图如下: 单例模式优缺点 优点:由于单例模式 阅读全文
posted @ 2020-03-29 04:00 kosamino 阅读(1983) 评论(0) 推荐(1) 编辑
摘要: 在软件开发中,为了提高软件系统的可维护性和可复用性,增加软件的可扩展性和灵活性,程序员要尽量根据一些原则来开发程序,从而提高软件开发效率、节约软件开发成本和维护成本。 我们常见有 7 条原则,设计模式之禅这本书中概括为6原则,我们本博客就以7原则来进行说明: 开闭原则 单一职责原则 里氏替换原则 依 阅读全文
posted @ 2020-03-26 20:29 kosamino 阅读(594) 评论(0) 推荐(0) 编辑
摘要: 我们以汽车分类管理程序为例来介绍合成复用原则的应用。 分析:汽车按“动力源”划分可分为汽油汽车、电动汽车等;按“颜色”划分可分为白色汽车、黑色汽车和红色汽车等。如果同时考虑这两种分类,其组合就很多。如图所示是用继淨:关系实现的汽车分类的类图。 从图中可以看出用继承关系实现会产生很多子类,而且增加新的 阅读全文
posted @ 2020-03-26 20:28 kosamino 阅读(1007) 评论(0) 推荐(0) 编辑
摘要: 如一个明星与经纪人的关系实例。明星由于全身心投入艺术,所以许多日常事务由经纪人负责处理,如与粉丝的见面会,与媒体公司的业务洽淡等。这里的经纪人是明星的朋友,而粉丝和媒体公司是陌生人,所以适合使用迪米特法则,其类图如图所示。 程序代码如下: public class LoDtest { public 阅读全文
posted @ 2020-03-26 20:14 kosamino 阅读(812) 评论(0) 推荐(0) 编辑
摘要: 如本例学生成绩管理程序,学生成绩管理程序一般包含插入成绩、删除成绩、修改成绩、计算总分、计算均分、打印成绩信息、査询成绩信息等功能,如果将这些功能全部放到一个接口中显然不太合理,正确的做法是将它们分别放在输入模块、统计模块和打印模块等 3 个模块中,其类图如图所示: 源码如下: public cla 阅读全文
posted @ 2020-03-26 19:39 kosamino 阅读(617) 评论(0) 推荐(0) 编辑
摘要: 我们来写一个关于司机开车的示例,假设我们现在有个司机,可以开车,然后有一辆奔驰,于是就可以让车跑起来。 public class Driver { // 司机职责就是驾驶汽车 public void drive(Benz benz) { benz.run(); } } public class Be 阅读全文
posted @ 2020-03-26 19:06 kosamino 阅读(531) 评论(0) 推荐(0) 编辑
摘要: 里氏替换原则强调的是设计和实现要依赖于抽象而非具体;子类只能去扩展基类,而不是隐藏或者覆盖基类,它包含4层含义. 一、里氏替换4原则 1、子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法 子类可以实现父类的抽象方法,但不能覆盖父类的非抽象方法,父类中凡是已经实现好的方法(相对于抽象方法而言), 阅读全文
posted @ 2020-03-26 16:10 kosamino 阅读(3344) 评论(0) 推荐(1) 编辑
摘要: 以一个关于课程的例子展示开闭原则: /** * 定义课程接口 */ public interface ICourse { String getName(); // 获取课程名称 Double getPrice(); // 获取课程价格 Integer getType(); // 获取课程类型 } / 阅读全文
posted @ 2020-03-26 15:41 kosamino 阅读(3114) 评论(0) 推荐(2) 编辑
摘要: 说到WebSocket技术,其实源于服务器推送技术,在现实中很多时候需要的数据是不断变化的,比如股市数据、聊天软件,因此就需要一种客户端想要在不刷新页面的情况下实时获取到服务器端最新数据的技术,而以往的数据获取都是基于客户端主动请求,服务端返回对应数据。因此就有了服务器推送技术。 服务器推送技术主要 阅读全文
posted @ 2020-03-26 05:33 kosamino 阅读(7730) 评论(1) 推荐(0) 编辑
摘要: 先附上GitHub地址:https://github.com/kosamino/netty-root/tree/master/ym-netty-rpc RPC的实现方式是本地通过远程代理对象调用远程服务。在互联网应用场景中,单体服务极度缺乏弹性伸缩能力,在大规模开发团队中也不便于开发管理。所以往往会 阅读全文
posted @ 2020-03-26 03:37 kosamino 阅读(560) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 ··· 24 下一页