背景: 商场促销期间,可能会出现8折、5折的促销活动,也可能出现满100减10、满200减30的促销活动,设计一个收银系统。 策略模式:定义了算法家族,让它们之间可以互相替换,此模式让算法的变化不会影响到使用算法的客户。 UML类图: Demo: 算法接口Strategy: 具体算法Concrete ...
分类:
其他好文 时间:
2018-05-06 21:21:34
阅读次数:
160
该文章复制于自己的csdn 博客。 目前就职于外包公司,公司内网能登陆csdn,没办法登录博客园,没办法现在继续开始在csdn上写吧。 由于刚刚入职自己的电脑还没有配置好,只能临时使用他人的电脑测试一下以前的需求。这不快下班了,感觉自己应该整理一下接下来的工作、学习计划了。 刚刚翻看了几篇博客,看看 ...
分类:
编程语言 时间:
2018-05-05 10:21:05
阅读次数:
186
简单工厂设计模式 案例: 写一个计算器, 实现加减乘除. 第一步: 写一份简单的代码 这样做, 确实实现了简单的计算功能. 但是, 从面相对象的角度来考虑呢? 可维护性如何? 可扩展性如何? 可复用性如何?灵活性如何? ...
分类:
其他好文 时间:
2018-05-04 20:17:40
阅读次数:
116
学习来自《大话设计模式》有兴趣可以研究一下 一、工厂模式 原理 子类对象可以赋值给父类对象。同一个父类对象的子类,通过switch语句new出来(当然用if也可以但那样判断就多了起来)。 如:三个窗体form1、form2、form3都是继承自form对象这就可以声明一个 Form frm =nil ...
一.概念: 设计模式是人们在面对同类型软件工程设计问题所总结出的一些有用经验 模式不是代码而是某类问题的通用设计解决方案 设计模式的本质目的是使软件工程在维护性、扩展性、变化性、复杂度方面成O(N) 学习设计模式最好的方式是在你的设计和以往的工程里寻找何处可以使用它们 二.OO的六大原则: 1. S ...
分类:
其他好文 时间:
2018-04-20 14:35:39
阅读次数:
123
外观模式:为子系统中的一组接口提供一个一致的界面,从模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。 使用场景: (1)设计初期,有意识的将不同的两个层进行分离,比如经典的三层架构,就要考虑数据访问层和业务逻辑层,业务逻辑层与表现层,层与层之间建立外观facade。降低耦合性。 (2)开 ...
分类:
其他好文 时间:
2018-04-19 21:49:00
阅读次数:
176
引言:让我们重温经典,致敬经典 工厂方法模式:定义一个用于创建对象的接口,让子类来决定实例化哪一个类,工厂方法使一个类的实例化延迟到了子类。 UML图: 解读:我们知道简单工厂模式和工厂方法模式很像,但是又不同。 简单工厂最大的优点在于工厂类中包含了必要性的逻辑判断,根据客户端的选择动态的实例化对象 ...
分类:
其他好文 时间:
2018-04-01 22:59:18
阅读次数:
224
引言:让我们重温经典,致敬经典 代理模式:为其他对象提供一种代理以控制对这个对象的访问 UML: 解读:代理模式要求代理者和被代理者实现同一个接口或者继承自同一个父类。并且代理者要持有真实对象的引用。 所以代理者和被代理者之间的关系应该是关联关系。 代码: 对于客户端来说,无需知道真实对象(Real ...
分类:
其他好文 时间:
2018-04-01 20:01:33
阅读次数:
185
策略模式:定义了算法家族,分别封装起来,让他们呢之间可以互相的替换,此模式让算法的变化不会影响到使用算法的客户。 UML类图: 解读:策略模式是定义一系列的算法,从概念上来讲,这些算法完成的工作都是一样的,只是他们的实现的不同,可以以相同的方式调用所有的算法,减少了各种算法类和算法调用类之间的耦合。 ...
分类:
其他好文 时间:
2018-04-01 14:31:52
阅读次数:
172
引言:让我们重温经典,致敬经典 简单工厂模式:根据调用端传参来有选择的实例化目标对象。 UML类图: 我们知道简单工厂就是为我们生成我们需要的对象。 举个栗子: 我们在舞台看表演的时候,一场场表演下来,我们可以总结个流程,舞台 表演1 ,表演2,表演3 。。。 结束。抽像为舞台 表演 结束。其实啊我 ...
分类:
其他好文 时间:
2018-03-31 00:53:01
阅读次数:
207