随笔分类 -  [803]设计模式

理论知识
摘要:题目描述 一个项目中有Employee类型,该类型是个大类型,下分为Engineer类型和Manager类型。比方一个人开始是Engineer类型,后来升职了,变成了Manager的角色,这种情况,应该如何建模更好一些。 思路 变继承关系为组成关系,方便扩展。 代码 定义一个Role的接口: 定义E 阅读全文
posted @ 2019-01-31 21:07 DarrenChan陈驰 阅读(408) 评论(1) 推荐(0) 编辑
摘要:在软件系统设计的时候,我们需要把一个大的系统按照业务功能进行拆分,做到高内聚、低耦合。 但是呢,拆分之后会产生一些通用性的东西,比如日志,安全,事务,性能统计等,这些非功能性需求,横跨多个模块。最low的一种写法如下: 为什么说上面这种方式low呢,主要是因为它把日志、安全、事务、性能统计这些非业务 阅读全文
posted @ 2019-01-31 20:09 DarrenChan陈驰 阅读(1548) 评论(0) 推荐(1) 编辑
摘要:一、创建类设计模式 前言 什么样的程序员是一个好的程序员?学会很多门编程语言,就是一个好的程序员了么?事实上,学会一门编程语言不是一件很难的事,而“学会”一门编程语言是非常难的一件事。前一个“会”强调“能”,懂语法,能写简单的程序就算是前者的“会”了;后一个“会”,强调“精”,显然,光能写出“Hel 阅读全文
posted @ 2017-12-04 20:57 DarrenChan陈驰 阅读(239) 评论(0) 推荐(0) 编辑
摘要:前言: 在现实生活中,考虑以下的场景:小王打算要去租房,他相中了一个房子,准备去找房东洽谈相关事宜。但是房东他很忙,平时上班没时间,总没有时间见面,他也没办法。后来,房东想了一个办法,他找到了一个人代替自己和小王洽谈,房东本人不用出面,他只要把他的对房客的要求告诉他找的那个人,那个人和你商量就可以了 阅读全文
posted @ 2017-06-04 11:22 DarrenChan陈驰 阅读(361) 评论(1) 推荐(1) 编辑
摘要:一、设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责 阅读全文
posted @ 2016-08-20 02:03 DarrenChan陈驰 阅读(243) 评论(0) 推荐(0) 编辑
摘要:解释一下模板方法模式,就是指:一个抽象类中,有一个主方法,再定义1...n个方法,可以是抽象的,也可以是实际的方法,定义一个类,继承该抽象类,重写抽象方法,通过调用抽象类,实现对子类的调用,先看个关系图: 就是在AbstractCalculator类中定义一个主方法calculate,calcula 阅读全文
posted @ 2016-08-20 01:57 DarrenChan陈驰 阅读(228) 评论(0) 推荐(0) 编辑
摘要:工厂方法模式有一个问题就是,类的创建依赖工厂类,也就是说,如果想要拓展程序,必须对工厂类进行修改,这违背了闭包原则,所以,从设计角度考虑,有一定的问题,如何解决?就用到抽象工厂模式,创建多个工厂类,这样一旦需要增加新的功能,直接增加新的工厂类就可以了,不需要修改之前的代码。因为抽象工厂不太好理解,我 阅读全文
posted @ 2016-08-19 20:22 DarrenChan陈驰 阅读(338) 评论(0) 推荐(0) 编辑
摘要:工厂方法模式有四要素 产品接口 产品实现 工厂接口 工厂实现 和简单工厂模式的区别 简单工厂模式只有三个要素,它没有工厂接口,并且得到的产品方法一般是静态的。因为没有工厂接口,所以在工厂实现的扩展性方面较弱,可以算作工厂方法模式的简化版。 计算器的例子用工厂方法模式实现 IFactory: AddF 阅读全文
posted @ 2016-07-11 19:43 DarrenChan陈驰 阅读(312) 评论(0) 推荐(0) 编辑
摘要:今天,我们来谈一谈工厂模式三部曲之一——简单工厂模式(静态工厂模式)。首先,先谈一下工厂模式吧,工厂模式根据抽象程度的不同划分为三种:简单工厂模式,工厂方法模式以及抽象工厂模式。它是编程中经常用到的一种模式哦。那么为什么这么受欢迎呢?1.可以使代码清晰,有效地封装变化。通过工厂模式将产品的实例化封装 阅读全文
posted @ 2016-07-11 19:05 DarrenChan陈驰 阅读(459) 评论(2) 推荐(0) 编辑
摘要:一、引子 话说十年前,有一个暴发户,他家有三辆汽车——Benz 奔驰、Bmw 宝马、Audi 奥迪, 还雇了司机为他开车。不过,暴发户坐车时总是怪怪的:上 Benz 车后跟司机说“开奔驰车!”, 坐上 Bmw 后他说“开宝马车!”,坐上 Audi 说“开奥迪车!”。你一定说:这人有病!直接说 开车不 阅读全文
posted @ 2016-05-30 10:58 DarrenChan陈驰 阅读(220) 评论(0) 推荐(0) 编辑
摘要:概念: java中单例模式是一种常见的设计模式,单例模式分三种:懒汉式单例、饿汉式单例、登记式单例三种。 单例模式有一下特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他对象提供这一实例。 单例模式确保某个类只有一个实例,而且自行实例化并向整个系 阅读全文
posted @ 2016-05-23 19:19 DarrenChan陈驰 阅读(422) 评论(0) 推荐(0) 编辑
摘要:装饰模式和动态代理模式乍一看差不多,都是动态的增加行为,其实有各自的区别。 一、首先我们看一下装饰设计模式,其基本思想如下: 1、编写一个类,实现与被装饰类相同的接口。目的使他们有相同的行为 2、定义一个实例变量,引用被装饰对象。目的和原来的老对象进行交接 3、定义构造方法,把被装饰对象注入进来。 阅读全文
posted @ 2016-04-27 20:52 DarrenChan陈驰 阅读(1181) 评论(1) 推荐(1) 编辑

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示