随笔分类 - Java设计模式
摘要:桥接模式 桥接模式(Bridge): 将抽象部分和它的实现部分分离,使他们都可以独立地变化。 桥接模式UMl结构图: Java代码实现: Implementor类: public interface Implementor { public void operation(); } Implement
阅读全文
摘要:原文作者:张新强 原文地址:http://www.barryzhang.com/archives/521 1. 前言 单例(Singleton)应该是开发者们最熟悉的设计模式了,并且好像也是最容易实现的——基本上每个开发者都能够随手写出——但是,真的是这样吗? 作为一个Java开发者,也许你觉得自己
阅读全文
摘要:适配器模式: 适配器模式(Adapter):将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 使用情景: 在软件开发中,当系统的数据和行为都正确,但接口不符时,我们应当考虑适配器,目的是使控制范围之外的一个原有对象于某个接口匹配
阅读全文
摘要:观察者模式: 书中通过小菜描述同事在公司看股票行情,并请求前台帮忙在老板回来时提醒同事,引出需求。将前台通知同事老板回来的事写成程序。 未用模式实现: 1 //前台类 2 public class Secretary { 3 private List<StockObserver> observers
阅读全文
摘要:外观模式: 文中通过小菜说同时炒股事件引出需求,要求小菜写一个关于股民买股票的代码。 未用设计模式代码实现: 股票 public class Stock { public void buyStock(){ System.out.println("买股票"); } public void sellSt
阅读全文
摘要:模板方法模式: 模板方法模式:定义一个操作中的算法的骨干,而将一些步骤延迟到子类中去。模板方法模式使得子类可以不改变一个算法的接口即可以重定义该算法的某些特定步骤。 模板方法模式UML类图: 模板方法模式Java代码实现: 1 public abstract class AbstractClass
阅读全文
摘要:原型模式(Prototype): 书中通过小菜要去面试,需要打印简历。而引出了需求。 需要小菜写一份简历类,要求有姓名,年龄,性别。可以设置工作经历,并且需要三份简历。 未使用设计模式代码: 1 package Prototype.NoPattern; 2 3 public class Resume
阅读全文
摘要:工厂方法模式(Factory Method) 书中通过一个学雷锋的例子,来引出工厂方法模式。 工厂方法模式:定义了一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 工厂方法模式UMl类图: 工厂方法模式代码: public abstract class Lei
阅读全文
摘要:上篇内容说到小菜去和娇娇约会,在本章中,小菜约会回来,和大鸟谈到娇娇是有男朋友的。并且聊到了娇娇的男朋友在追娇娇的过程。通过帮助卓贾谊同学东西的方法追求到了娇娇。而引出了代理模式。 代理模式Proxy: 代理模式(Proxy):为其他对象提供一种代理,已控制这种对这个对象的访问。 代理模式UMl类图
阅读全文
摘要:大多数时候,一件产品简单一些,职责单一一些。或许是更好的选择 单一职责原则: 就一个类而言,应该有且仅有一个引起它变化的原因。 如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,设计会遭到意想不到的破
阅读全文
摘要:书中通过一道题目,让"小菜"设计一个商场收银软件,营业员根据客户购买商品的数量及单价,想客户收费。,并且软件可以兼容打折,返点等优惠活动的金额计算。 一开始,小菜使用之前所学的简单工厂模式来制作这个收银软件。 收费父类 普通收费子类 打折收费类 满减收费类 收费工厂类 主方法 但是这里就遇到了我们在
阅读全文
摘要:简单工厂模式:简单工厂模式,又叫做静态工厂模式。是指通过专门定义一个类来创建其他类的实例。 在文中,小菜需要开发一个计算器程序。而为了方便维护,扩展和复用,引出了简单工厂模式。 所有的计算方法,加减乘除等,都有一个计算方法工厂来创建。当需要添加新的方法时,我们只需要添加新的方法类(继承运算类),并在
阅读全文