摘要:
常见的几个布局面板 1.StackPanel面板 StackPanel面板能够简单根据单行或者单列进行元素排列, StackPanel 默认的布局方向为垂直方向(Vertical), 由Orientation属性控制。 Orientation属性: 用户控制布局方向是垂直还是横向排列。分别有两个值可 阅读全文
摘要:
示例图: Expander控件功能很常见, 一般用于系统左侧的菜单收缩面板。 1.主要的组成 一个头部(header) 和 一个 内容(content) 组成。 为了修改掉原生的样式, 重新定义了一个Style / ExpanderStyle1 1.将原有的左侧圆形删除 2.把左侧的箭头移动至右侧 阅读全文
摘要:
1.PLC工作原理 PLC将程序存储在用户存储器当中, 驱动其运行, 相对比微型计算机软件, PLC程序则不同的是, 微型计算机整个流程则是从规定的开始 至结束完整工作流程。相对与PLC运行,则是从位于0地址开始, 扫描完成整个程序的地址, 则算完成了一次扫描周期, 然后再从新从0地址开 始扫描, 阅读全文
摘要:
1.PLC硬件组成 控制器(PLC)的功能结构主要由 CPU 、储存器、输入/输出模块 三部分组成。如下图: (1).CPU CPU的功能主要是完成PLC内所有的控制和监视作用, 而CPU一般由控制器、运算器、寄存器组成。 CPU通过数据总线、地址总线和控制总线 与存储器、输入/输出模块电路连接。 阅读全文
摘要:
什么是单例模式? 这里我就不做过多的解释了, 毕竟关于Singleton的资料实在是太多太多了。点击这里 1.简单的思路就是, 创建对象单例的动作转移到另外的行为上面, 利用一个行为去创建对象自身, 如下: public class Singleton { private Sington() { } 阅读全文
摘要:
定义: 一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 问题由来: 在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。 解决方案: 当软件需要变化时,尽量通过扩展软件实 阅读全文
摘要:
定义: 一个对象应该对其他对象保持最少的了解。 问题由来: 类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。 解决方案: 尽量降低类与类之间的耦合。 PS: 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。 无论是面向过程编程还是面向对象编程,只有使 阅读全文
摘要:
接口隔离原则(ISP)定义: 客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 问题由来: 类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。 解决方案: 将臃肿的接口I拆分为独立的几个接口 阅读全文
摘要:
依赖倒置原则(DIP)定义: 高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 问题由来: 类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块, 负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操 阅读全文
摘要:
里氏替换原则(LSP)由来: 最早是在 妖久八八 年, 由麻神理工学院得一个女士所提出来的。 定义: 1:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 阅读全文