static void Main(string[] args)
{
var shapes = new List {
new Circle(2),
new Square(5),
new Square(6)
};
var areas = new AreaCalculator(shapes);
Console.WriteLine(areas.Output());
}
运行程序,您会看到如下的输出:
Sum of the areas of provided shapes: 73.56637061435917
class AreaCalculator
{
private List _shapes;
public AreaCalculator(List shapes)
{
_shapes = shapes;
}
///
/// 计算所有形状的面积总和
///
///
public double Sum()
List areas = new List();
foreach (var item in _shapes)
{
if (item is Square s)
{
areas.Add(Math.Pow(s.SideLength, 2));
}
else if (item is Circle c)
areas.Add(Math.PI * Math.Pow(c.Radius, 2));
}
return areas.Sum();
}
并新增一个 SumCalculatorOutputter 类来专门处理输出格式的逻辑:
class SumCalculatorOutputter
{
protected AreaCalculator _calculator;
public SumCalculatorOutputter(AreaCalculator calculator)
{
_calculator = calculator;
}
public string String()
return $"Sum of the areas of provided shapes: {_calculator.Sum()}";
public string JSON()
var data = new { Sum = _calculator.Sum() };
return System.Text.Json.JsonSerializer.Serialize(data);
}
此时我们再来修改一下 Main 中的调用:
static void Main(string[] args)
{
var shapes = new List {
new Circle(2),
new Square(5),
new Square(6)
};
var areaCalculator = new AreaCalculator(shapes);
var outputer = new SumCalculatorOutputter(areaCalculator);
Console.WriteLine(outputer.JSON());
Console.WriteLine(outputer.String());
}
运行程序,输出结果如下:
{"Sum":73.56637061435917} Sum of the areas of provided shapes: 73.56637061435917
Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。 Adapter:将一个类的接口转换成客户希望的另外一个接口。A d a p t e r模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 Bridge:将抽象部分与它的实现部分分离,使它们都可以独立地变化。 Builder:将一个复杂对象的构建与它的表示分离,使得同
import java.util.LinkedList;
public class CaseInsensitiveTrie {
/**
字典树的Java实现。实现了插入、查询以及深度优先遍历。
Trie tree's java implementation.(Insert,Search,DFS)
Problem Description
Igna
/*
2013年3月11日20:37:32
地点:北京潘家园
功能:完成用户格式化输入多个值
目的:学习scanf函数的使用
*/
# include <stdio.h>
int main(void)
{
int i, j, k;
printf("please input three number:\n"); //提示用
数据表中有记录的time字段(属性为timestamp)其值为:“0000-00-00 00:00:00”
程序使用select 语句从中取数据时出现以下异常:
java.sql.SQLException:Value '0000-00-00' can not be represented as java.sql.Date
java.sql.SQLException: Valu