9.3 模版设计模式
Posted 盘思动
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9.3 模版设计模式相关的知识,希望对你有一定的参考价值。
- 抽象类的设计应该是比类更高一层的设计。
- 抽象类最大好处:1.对子类方法对统一管理;2.可以自身提供有一些普通方法,并且这些普通方法可以调用抽象方法(这些抽象方法必须在有子类提供实现的时候才会生效)
abstract class Action // 定义公共行为类
public static final int EAT = 1; // “吃饭”操作命令
public static final int SLEEP = 5; // “睡觉”操作命令
public static final int WORK = 10; // “工作”操作命令
public void command(int code) // 执行命令
switch (code) // 判断命令类型
case EAT:
this.eat(); // 执行命令方法
break;
case SLEEP:
this.sleep(); // 执行命令方法
break;
case WORK:
this.work(); // 执行命令方法
break;
case EAT + SLEEP + WORK: // 组合命令
this.eat(); // 执行命令方法
this.sleep(); // 执行命令方法
this.work(); // 执行命令方法
break;
public abstract void eat(); // 【抽象方法】吃饭行为
public abstract void sleep(); // 【抽象方法】睡觉行为
public abstract void work(); // 【抽象方法】工作行为
class Robot extends Action // 定义机器人行为类
@Override
public void eat() // 方法覆写
System.out.println("机器人需要接通电源充电。");
@Override
public void sleep() // 机器不需要休息,方法体为空
@Override
public void work() // 方法覆写
System.out.println("机器人按照固定的套路进行工作。");
class Person extends Action // 人类行为
@Override
public void eat() // 方法覆写
System.out.println("饿的时候安静的坐下吃饭。");
@Override
public void sleep() // 方法覆写
System.out.println("安静的躺下,慢慢的睡着,而后做着美梦。");
@Override
public void work() // 方法覆写
System.out.println("人类是高级脑类动物,在工作中不断学习与成长。");
class Pig extends Action // 猪类行为
@Override
public void eat() // 方法覆写
System.out.println("吃食槽中饲料。");
@Override
public void sleep() // 方法覆写
System.out.println("倒地就睡。");
@Override
public void work() // 猪不需要工作,方法体为空
public class HelloWorld
public static void main(String args[])
Action robotAction = new Robot(); // 机器人行为
Action personAction = new Person(); // 人类行为
Action pigAction = new Pig(); // 猪类行为
System.out.println("------------ 机器人行为 -------------");
robotAction.command(Action.SLEEP); // 执行命令---ACTION.SLEEP类中常量访问方法!!!!
robotAction.command(Action.WORK); // 【无效操作】执行命令
System.out.println("------------ 人类的行为 -------------");
personAction.command(Action.SLEEP + Action.EAT + Action.WORK); // 执行命令
System.out.println("------------ 猪类的行为 -------------");
pigAction.work(); // 执行命令
pigAction.eat(); // 执行命令
- 这种设计模式,抽象类是个技术活!!
相信坚持的力量,日复一日的习惯.
iOS中都有啥设计模式?各个设计模式的作用
参考技术A 大致有23种都是表示类与类之间的构架关系 也就是表示对象的逻辑关系
设计模式根据使用类型可以分为三种:
1、 创建模式:工厂模式、单子模式、建造者模式、原型模式、工厂方法模式。
2、 结构模式:外观模式、代理模式、适配器模式、组合模式、装饰模式、桥模式、
共享模式。
3、 行为模式:模板模式、纪念品模式、观察者模式、责任链模式、命令模式、声明模式、
策略模式、中介模式、解释器模式、访问模式
说白了模式就是前人经过大量的实践,总结出来的优化的对象关系 你也可以自己总结出来
3.iOS 10 隐私权限设置
iOS 10 开始对隐私权限更加严格,如果你不设置就会直接崩溃,现在很多遇到崩溃问题了,一般解决办法都是在info.plist文件添加对应的Key-Value就可以了。
iOS 10 UIStatusBar方法过期:
在我们开发中有可能用到UIStatusBar一些属性,在iOS 10 中这些方法已经过期了,如果你的项目中有用的话就得需要适配。上面的图片也能发现,如果在iOS 10中你需要使用preferredStatusBar比如这样:
//iOS 10 - (UIStatusBarStyle)preferredStatusBarStyle return UIStatusBarStyleDefault;
我们都是用RGB来设置颜色,反正用起来也不是特别多样化,这次新增的方法应该就是一个弥补吧。所以在iOS 10 苹果官方建议我们使用sRGB,因为它性能更好,色彩更丰富。如果你自己为UIColor写了一套分类的话也可尝试替换为sRGB,UIColor类中新增了两个Api如下:
+ (UIColor *)colorWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0); - (UIColor *)initWithDisplayP3Red:(CGFloat)displayP3Red green:(CGFloat)green blue:(CGFloat)blue alpha:(CGFloat)alpha NS_AVAILABLE_IOS(10_0);
以上是关于9.3 模版设计模式的主要内容,如果未能解决你的问题,请参考以下文章