设计模式
Living_Z
这个作者很懒,什么都没留下…
展开
-
大话设计模式之工厂方法模式总结-java实现
注:示例来自《大话设计模式》以前几天的用简单工厂模式写的计算器为例 下面用工厂方法模式来写这个计算器 代码如下加法运算类package Test08;public abstract class Operation { private double _numberA = 0; private double _numberB = 0; public dou...原创 2018-08-31 16:29:03 · 188 阅读 · 0 评论 -
大话设计模式之组合模式总结-java实现
注:示例来自《大话设计模式》假如现有如下场景 给一家大公司做办公管理系统 总部有人力资源 财务 运营等部门 还有一些分公司 现在有个需求 总公司的人力资源部 财务部等办公管理功能在所有的分公司都需要有 这其实就是整体与部分可以被一致对待的问题 下面我们使用组合模式进行简单实现 代码如下公司类package Test19;public abstract class Company...原创 2018-09-06 09:36:44 · 929 阅读 · 0 评论 -
大话设计模式之迭代器模式总结-java实现
注:示例来自《大话设计模式》假如现有如下场景 公交车上 乘务员按顺序让每个人买票 使用迭代器模式简单实现如下Iterator迭代器抽象类package Test20;public abstract class Iterator { public abstract Object First(); public abstract Object Next(); ...原创 2018-09-06 11:20:35 · 462 阅读 · 0 评论 -
大话设计模式之单例模式总结-java实现
注:示例来自《大话设计模式》所有类都有构造方法 不编码则系统默认生成空的构造方法 若有显示定义的构造方法 默认的构造方法就会失效单例模式 保证一个类仅有一个实例 并提供一个访问它的全局访问点通常我们可以让一个全局变量使得一个对象被访问 但它不能防止你实例化多个对象 一个最好的办法就是 让类自身负责保存它的唯一实例 这个类可以保证没有其他实例可以被创建 并且它可以提供一个访问该实例的方法...原创 2018-09-06 14:10:19 · 251 阅读 · 0 评论 -
大话设计模式之桥接模式总结-java实现
注:示例来自《大话设计模式》假如现有如下场景 现有M和N品牌的手机 有游戏和通讯录功能 简单代码实现如下手机类package Test22;//手机品牌public abstract class HandsetBrand { public abstract void Run();}手机品牌N和手机品牌M类package Test22;//手机品...原创 2018-09-06 15:51:01 · 207 阅读 · 0 评论 -
23种设计模式总结
创建型抽象工厂 提供一个创建一系列或相关依赖对象的接口 而无需指定它们具体的类创建型模式隐藏了这些类的实例是如何被创建和放在一起 整个系统关于这些对象所知道的是由抽象类所定义的接口 这样 创建型模式在创建了什么 谁创建它 它是怎么被创建的 以及何时创建这些方面提供了很大的灵活性建造者 将一个复杂对象的构建与它的表示分离 使得同样的构建过程可以创建不同的表示内聚性描述的是一个例...原创 2018-09-10 13:37:11 · 103 阅读 · 0 评论 -
大话设计模式之命令模式总结-java实现
注:示例来自《大话设计模式》假如现有如下场景 路边有个烤肉摊 可以点烤肉吃 简单代码实现如下烤肉串者类package Test23;//烤肉串者public class Barbecuer { //烤羊肉 public void BakeMutton() { System.out.println("烤羊肉串!"); } ...原创 2018-09-07 09:36:54 · 286 阅读 · 0 评论 -
大话设计模式之职责链模式总结-java实现
注:示例来自《大话设计模式》假如现有如下场景 员工向经理申请加薪或请假 经理没权利 然后向总监上报 总监也没权限 向总经理上报 我们用代码来实现这个场景 简单代码实现如下申请类package Test24;//申请public class Request { //申请类别 private String requestType; //申请内容 ...原创 2018-09-07 10:57:20 · 173 阅读 · 0 评论 -
大话设计模式之中介者模式总结-java实现
注:示例来自《大话设计模式》尽管将一个系统分割成许多对象通常可以增加其可复用性 但是对象间相互连接的激增又会降低其可复用性 因为大量的连接使得一个对象不可能在没有其他对象的支持下工作 系统表现为一个不可分割的整体 所以 对系统的行为进行任何较大的改动就十分困难了 要解决这样的问题 可以用中介者模式下面我们写一个案例 需求是美国和伊拉克之间的对话都是通过联合国安理会作为中介来完成 简单代码实...原创 2018-09-07 12:00:32 · 327 阅读 · 0 评论 -
大话设计模式之享元模式总结-java实现
注:示例来自《大话设计模式》假如现有如下需求 有多个客户想要使用同样的网站 但要求不太一样 有的希望是博客形式的 还有的希望是产品图片说明形式的 简单代码实现如下网站类package Test26;//网站public class WebSite { private String name = ""; public WebSite(String name) ...原创 2018-09-07 14:25:28 · 712 阅读 · 0 评论 -
大话设计模式之解释器模式总结-java实现
注:示例来自《大话设计模式》解释器模式 给定一个语言 定义它的文法的一种表示 并定义一个解释器 这个解释器使用该表示来解释语言中的句子如果一种特定类型的问题发生的频率足够高 那么可能就值得将该问题的各个实例表述为一个简单语言中的句子 这样就可以构建一个解释器 该解释器通过解释这些句子来解决该问题下面我们来做个小型的音乐解释器程序 代码如下演奏内容类package Test2...原创 2018-09-07 15:32:29 · 195 阅读 · 0 评论 -
大话设计模式之访问者模式总结-java实现
注:示例来自《大话设计模式》假如现有如下一段代码package Test28;public class Program { public static void main(String[] args) { System.out.println("男人成功时,背后多半有一个伟大的女人。"); System.out.println("女人成功...原创 2018-09-07 16:47:23 · 314 阅读 · 0 评论 -
大话设计模式之外观模式总结-java实现
注:示例来自《大话设计模式》现有股民炒股票的代码如下股票1类package Test11;//股票1public class Stock1 { //卖股票 public void Sell() { System.out.println(" 股票1卖出"); } //买股票 public void Buy()...原创 2018-09-03 14:57:14 · 369 阅读 · 0 评论 -
大话设计模式之模板方法模式总结-java实现
注:示例来自《大话设计模式》现有需求如下 老师随堂测验 在黑板上抄题目 学生先抄题目 然后再做答案 代码初步实现如下学生甲抄的试卷类package Test10;//学生甲抄的试卷public class TestPaperA { //试题1 public void TestQuestion1() { System.out.print...原创 2018-09-03 13:03:22 · 426 阅读 · 0 评论 -
大话设计模式之简单工厂模式总结-java实现
注:来自《大话设计模式》如果让我们手写一个计算器程序 可能是下面这样package designpattern;import java.util.Scanner;public class Program { public static void main(String[] args) { try { System.out.print...原创 2018-08-30 11:40:29 · 217 阅读 · 0 评论 -
大话设计模式之策略模式总结-java实现
注:来自《大话设计模式》以商场收银软件为例 营业员根据客户所购买商品的单价和数量 进行收费 下面是代码实现package Test02;import java.util.Scanner;public class Program { public static void main(String[] args) { //声明一个double变量to...原创 2018-08-30 16:24:39 · 279 阅读 · 1 评论 -
大话设计模式之装饰模式总结-java实现
现有如下要求 写一个可以给人搭配不同的服饰的系统 代码如下Person类package Test06;public class Person { private String name; public Person(String name) { this.name = name; } public void WearTSh...原创 2018-08-31 13:07:23 · 448 阅读 · 1 评论 -
大话设计模式之代理模式总结-java实现
注:示例来自《大话设计模式》比如我们追女孩子 想送喜欢的女孩子礼物 但是自己又不好意思 于是让好朋友帮忙送 用代码实现可能是下面这样追求者类package Test07;public class Pursuit { SchoolGirl mm; public Pursuit(SchoolGirl mm) { this.mm = mm;...原创 2018-08-31 14:47:46 · 223 阅读 · 0 评论 -
大话设计模式之建造者模式总结-java实现
注:示例来自《大话设计模式》现有如下需求 用程序画一个小人 简单代码实现如下package Test12;public class Program { public static void main(String[] args) { System.out.println("画小人头部"); System.out.println("画小人身体")...原创 2018-09-04 09:27:29 · 473 阅读 · 1 评论 -
大话设计模式之观察者模式总结-java实现
注:示例来自《大话设计模式》现有如下需求 公司员工想要利用工作时间炒股票 老板经常外出 怕被老板看到 于是拜托前台小姐姐 老板回来的时候打个电话通知他们 初步代码实现如下前台秘书类package Test14;import java.util.ArrayList;import java.util.List;//前台秘书类public class Secretary { ...原创 2018-09-04 13:31:48 · 903 阅读 · 0 评论 -
大话设计模式之抽象工厂模式总结-java实现
注:示例来自《大话设计模式》现有如下需求 写一个基本的数据访问程序 数据库用SqlServer 简单代码实现如下用户类package Test15;public class User { private int id; private String name; public int getId() { return id; }...原创 2018-09-05 08:44:44 · 482 阅读 · 0 评论 -
大话设计模式之状态模式总结-java实现
注:示例来自《大话设计模式》假如现有如下场景 员工上班 根据一天的时间变化 员工的状态也随之改变 如上午状态好 中午想睡觉 下午渐恢复 加班苦煎熬 初步代码实现如下package Test16;public class Program { static int Hour = 0; static boolean WorkFinished = false; pu...原创 2018-09-05 10:19:21 · 222 阅读 · 0 评论 -
大话设计模式之适配器模式总结-java实现
注:示例来自《大话设计模式》假如现有如下场景 篮球比赛 教练叫暂停时给后卫 中锋 前锋分配进攻和防守任务 简单代码实现如下球员类package Test17;//篮球运动员public abstract class Player { protected String name; public Player(String name) { ...原创 2018-09-05 11:26:27 · 574 阅读 · 0 评论 -
大话设计模式之备忘录模式总结-java实现
注:示例来自《大话设计模式》假如现有如下场景 游戏的某个场景 一游戏角色有生命力 攻击力 防御力等等数据 在打Boss前和后一定会不一样的 我们允许玩家如果感觉与Boss决斗的效果不理想 可以让游戏恢复到决斗前 简单代码实现如下游戏角色类package Test18;public class GameRole { //生命力 private int vit;...原创 2018-09-05 16:20:57 · 291 阅读 · 0 评论 -
大话设计模式之原型模式总结-java实现
注:示例来自《大话设计模式》现有需求如下 要求有一个简历类 必须要有姓名 可以设置性别和年龄 可以设置工作经历 最终我需要写三份简历 代码初步实现如下简历类package Test09;//简历public class Resume { private String name; private String sex; private String a...原创 2018-09-03 10:56:16 · 472 阅读 · 0 评论 -
面向对象程序设计原则总结
单一职责原则 就一个类而言 应该仅有一个引起它变化的原因 如果一个类承担的职责过多 就等于把这些职责耦合在一起 一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力 这种耦合会导致脆弱的设计 当变化发生时 设计会遭受到意想不到的破坏 软件设计真正要做的许多内容 就是发现职责并把那些职责相互分离 如果你能够想到多于一个的动机去改变一个类 那么这个类就具有多于一个的职责开放-封闭原则...原创 2018-09-07 17:26:50 · 1334 阅读 · 0 评论