用简单的例子说明提升可维护性的设计模式
Posted snt165
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用简单的例子说明提升可维护性的设计模式相关的知识,希望对你有一定的参考价值。
此文写给想要理解设计模式,但认为《设计模式》中所举的例子过于复杂的读者。
前人的经验告诉我们:使用以下设计模式提升软件的可维护性:
创建型模式:将实例化过程抽象化
1. 工厂方法
2. 抽象工厂
3. 发
结构型模式:通过组合类和对象来获得更大的结构
1.
行为模式
1.1 工厂模式
工厂模式的原则就是:绝对不要让用户直接new对象。
我们现在有产品接口、两个产品类:
public interface Fruit void whatIm();
public class Apple implements Fruit @Override public void whatIm() //苹果
public class Pear implements Fruit @Override public void whatIm() //梨
先看看简单工厂:
public class FruitFactory public Fruit createFruit(String type) if (type.equals("apple")) //生产苹果 return new Apple(); else if (type.equals("pear")) //生产梨 return new Pear(); return null;
它根据传入参数的不同生产不同的产品。但是如果有新增加的产品,就要修改工厂类了。有些人觉得这不妥,并且认为,每种产品需要有一个工厂。
于是我们需要把两种产品的new操作包装起来,写一个工厂接口,两个工厂对象:
public interface FruitFactory Fruit createFruit();//生产水果
public class AppleFactory implements FruitFactory @Override public Fruit createFruit() return new Apple();
public class PearFactory implements FruitFactory @Override public Fruit createFruit() return new Pear();
这就是工厂方法了。
用户用如下方法使用:
AppleFactory appleFactory = new AppleFactory(); PearFactory pearFactory = new PearFactory(); Apple apple = (Apple) appleFactory.createFruit();//获得苹果 Pear pear = (Pear) pearFactory.createFruit();//获得梨
1.2 抽象工厂模式
现在我们有两种产品:CPU、屏幕
CPU有两种:850、650
屏幕有两种:大、小
所以我们一共有六个类:CPU接口、850CPU、650CPU、屏幕接口、大屏幕、小屏幕
现在写出抽象工厂接口、红米手机抽象工厂、小米手机抽象工厂
小米手机抽象工厂包含了850CPU工厂、大屏幕工厂的功能
红米手机抽象工厂包含了650CPU工厂、小屏幕工厂的功能
总结一下,抽象工厂就是把两种不同的工厂方法拼在一起。
待补充
以上是关于用简单的例子说明提升可维护性的设计模式的主要内容,如果未能解决你的问题,请参考以下文章